知識のアウトプットをするブログ

なんでもブログに書き記す

【Python2.7】numpy基礎の基礎

f:id:seisyo58:20181115113833j:plain
numpyに触れる機械があったので、基礎的な扱いについてまとめてみる。

インポートする

numpyをnpという名前でインポートする

>>> import numpy as np

リストを生成する

リストを生成するには、.arrayを利用する

>>> x = np.array([[1,2],[3,4]])
>>> x
array([[1, 2],
       [3, 4]])

各要素にアクセスする

アクセスは以下のようにする

>>> x = np.array([[1,2],[3,4]])
>>> x
array([[1, 2],
       [3, 4]])
>>> x[0]
array([1, 2])
>>> x[1]
array([3, 4])
>>> x[0,0]
1
>>> x[0,1]
2
>>> x[1,0]
3
>>> x[1,1]
4

また、あまり使われないが、配列のようにアクセスすることもできる。参考程度に。

>>> x = np.array([[1,2],[3,4]])
>>> x
array([[1, 2],
       [3, 4]])
>>> x[0]
array([1, 2])
>>> x[1]
array([3, 4])
>>> x[0][0]
1
>>> x[0][1]
2
>>> x[1][0]
3
>>> x[1][1]
4

リストと数

>>> x = np.array([[1,2],[3,4]])
>>> x
array([[1, 2],
       [3, 4]])
>>> x+2
array([[3, 4],
       [5, 6]])
>>> x-2
array([[-1,  0],
       [ 1,  2]])
>>> x*2
array([[2, 4],
       [6, 8]])
>>> x/2
array([[0, 1],
       [1, 2]])
>>> x/2.0
array([[ 0.5,  1. ],
       [ 1.5,  2. ]])
>>> x**2
array([[ 1,  4],
       [ 9, 16]])

2つのリストの足し算

同じ構造のリスト同士
>>> x = np.array([[1,2],[3,4]])
>>> y = np.array([[5,6],[7,8]])
>>> x
array([[1, 2],
       [3, 4]])
>>> y
array([[5, 6],
       [7, 8]])
>>> x+y
array([[ 6,  8],
       [10, 12]])
>>> x-y
array([[-4, -4],
       [-4, -4]])
>>> x*y
array([[ 5, 12],
       [21, 32]])
>>> x/y
array([[0, 0],
       [0, 0]])
>>> x**y
array([[    1,    64],
       [ 2187, 65536]])

割り算は、ちょっと例が悪かったが、それぞれに対し、それぞれで計算がおこなわれていることがわかるかと思う。

構造の異なるリスト同士
>>> x = np.array([[1,2],[3,4]])
>>> y = np.array([[5],[6]])
>>> x
array([[1, 2],
       [3, 4]])
>>> y
array([[5],
       [6]])
>>> x+y
array([[ 6,  7],
       [ 9, 10]])
>>> x-y
array([[-4, -3],
       [-3, -2]])
>>> x*y
array([[ 5, 10],
       [18, 24]])
>>> x/y
array([[0, 0],
       [0, 0]])
>>> x**y
array([[   1,   32],
       [ 729, 4096]])

xに対して、yが足りないが、つまり、擬似的にコピーされている。
内部ではこのようになっている

>>> y = np.array([[5,5],[6,6]])
>>> y
array([[5, 5],
       [6, 6]])