np
として扱います。import numpy as np
u = [1, 2, 3, 4, 5]
v = [1, 4, 9, 16, 25]
np.array()
という関数を用いることでnp.ndarray
に変換できます。np.ndarray
はベクトル,行列,テンソルに対して用意された型で,np.ndarray
に対しnumpyの各種関数を適用することで演算を行います。np.dot()
で内積,+
で和を求めることができます。u = np.array(u)
v = np.array(v)
print(type(u), type(v))
print(np.dot(u, v))
print(u+v)
np.ndarray
の形状はnp.ndarray.shape
で確認できます。ここでは2×3の行列を作成します。a = np.array(
[
[1, 2, 3],
[4, 5, 6]
]
)
print(a.shape)
u = np.array([1, 2, 3, 4, 5])
v = np.array([1, 4, 9, 16, 25])
print(u.shape)
print(v.shape)
np.ndarray
の全要素に対して要素ごとに処理を行い,np.ndarray
を返す関数をユニバーサル関数と言います。np.ndarray
に対してもpythonの基本的な演算子を使って計算することができます。print(u + v)
print(u - v)
print(u * v)
print(u / v)
print(u**3)
print(u==3)
print(u==v)
print(u < v)
print(type(u < v))
np.ndarray
となります。print(np.sin(u))
print(np.log(u))
print(np.exp(u))
print(u)
print(3*u)
np.ndarray([3, 3, 3, 3, 3])
と自動的に変換して計算します。c = np.array([3, 3, 3, 3, 3])
print(3 * u == c * u)
w = np.array([1, 2])
print(w.shape)
print(u.shape)
print(w * u)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-30-9222f8abbfec> in <module>()
2 print(w.shape)
3 print(u.shape)
----> 4 print(w * u)
ValueError: operands could not be broadcast together with shapes (2,) (5,)
a = np.array(
[
[1, 2, 3, 4, 5],
[6, 7, 8, 9, 0]
]
)
print(a.shape)
print(u.shape)
print(a * u)
print(np.max(u))
print(np.sum(u))
print(np.mean(u))
print(np.std(u))
# np.concatenateによってnp.ndarrayを結合できます。
print(np.concatenate([u, v]))
u_list = [1, 2, 3, 4, 5]
u = np.array(u_list)
a = np.array(
[
[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[11, 12, 13, 14, 15]
]
)
print(u.shape)
print(a.shape)
[]
を使うことによって,任意の位置の値を取得できます。行列では行の位置と列の位置を指定することで値を取得できます。インデックスは0から始まることに注意してください。print(u[2])
print(u[-2])
print(a[0, 4])
print(u[[0, 1, 3]])
print(u_list[[0, 1, 3]])
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-43-68bebaed8f33> in <module>()
1 print(u[[0, 1, 3]])
----> 2 print(u_list[[0, 1, 3]])
TypeError: list indices must be integers or slices, not list
print(a[np.ix_([0, 2], [1, 3])])
start: end: step
でスライスすることができます。print(u)
print('[:3:2]', u[:3:2])
print('[1::2]', u[1::2])
print('[1:3:]', u[1:3:])
print('[1:3]', u[1:3])
print('[1:]', u[1:])
print(a[0:2, 0:3])
bool_idx_1d = [False, False, True, False, True]
print(u[bool_idx_1d])
bool_idx_2d = np.ix_([True, False, True], [False, False, True, False, True])
print(a[bool_idx_2d])
print(u[u > 3])