NumPyはベクトルや行列の演算を高速に行うことが可能な多次元配列のためのライブラリ. 中身はC言語等で実装されているので高速.
ここでは,機械学習の基礎を学ぶ際に使用するものを中心に, NumPyの基礎を記しておく. jupyterでの使用を想定していて,最後に変数だけ書いた行はその変数情報を表示するために書いてある.
NumPyのインポート
import numpy as np
NumPyの配列(ndarray)
- 1次元はベクトルで,2次元は行列.
- 1次元配列に縦ベクトル,横ベクトルの区別はない(転置しても変化無し).
リストをndarrayに変換
a = [0, 1, 2, 3, 4]
b = np.array(a)
b # jupyterで変数の情報を表示
[出力]
array([0, 1, 2, 3, 4])
和や積など
b * 2 # 要素を2倍
[出力]
array([0, 2, 4, 6, 8])
b + 2 # 要素に2を足す
[出力]
array([2, 3, 4, 5, 6])
2次元配列
c = np.array([[1, 2, 3], [4, 5, 6]])
c
[出力]
array([[1, 2, 3],
[4, 5, 6]])
配列の情報
c.shape # 配列の形状
[出力]
(2, 3)
c.size # サイズ(全要素数)
[出力]
6
転置
c.T # 転置
[出力]
array([[1, 4],
[2, 5],
[3, 6]])
配列の形状変更(reshape)
2行3列を3行2列に変更.
c.reshape(3, 2)
[出力]
array([[1, 2],
[3, 4],
[5, 6]])
reshapeでは引数に-1
を指定すれば自動でうまく形状を変更してくれる.
c.reshape(3, -1) # 3行だけ指定
[出力]
array([[1, 2],
[3, 4],
[5, 6]])