【Python2.7】numpy基礎の基礎
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]])