Numpyを使ってみる
NumPyは外部ライブラリです.まだインストールしていない人はこの記事を参考にしてください。
- Pythonインタプリタを起動
$python
>>>
- NumPyのインポート
>>>import numpy as np
「import numpy as np」と書くことでこれ以降はNumPyに関するメソッドは「np」として参照することが出来ます.
NumPy配列の生成
>>> x = np.array([1,2,3])
>>> print(x)
[1 2 3]
>>> type(x)
<class 'numpy.ndarray'>
- 「np.array()」これだけで配列が作れる
- np.array()の型は
numpy.ndarray
NumPyの計算
>>> x = np.array([1,2,3])
>>> y = np.array([4,5,6])
>>> x + y
array([5, 7, 9])
>>> x -y
array([-3, -3, -3])
>>> x * y
array([ 4, 10, 18])
>>> x / y
array([0.25, 0.4 , 0.5 ])
>>>
配列の計算をする上で気をつけることは配列のxとyの要素が同じであることですx、yは要素数が3の1次元配列
もしyの要素数を4つに変更
すると、
>>> y = np.array([4,5,6,7])
>>> x + y
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: operands could not be broadcast together with shapes (3,) (4,)
>>>
オペランドは(3,) と(4,)の型を一緒にブロードキャストすることが出来ません
x,yの型を確認してみる□.shape
で確認できる
>>> x.shape
(3,)
>>> y.shape
(4,)
1次元配列は(□,)、2次元配列は(□,□)、三次元配列(...)と表示される.
NumPy配列とスカラー値を計算
>>> x * 5
array([ 5, 10, 15])
なぜ計算できるのか?
Numpyにはブロードキャストと呼ばれる機能が備わっている.
NumPyのN次元配列の計算(行列)
>>> A = np.array([[1,2],[3,4]])
>>> B = np.array([[5,6],[7,8]])
>>> A + B
array([[ 6, 8],
[10, 12]])
>>> A * B
array([[ 5, 12],
[21, 32]])
>>>
行列の算術計算も同じ形状の行列同士であれば、要素ごとに計算が行われます.
行列にもスカラー値でブロードキャストを行うことが出来ます.