NumPyとは #
NumPyはベクトルや行列の演算を高速に行うことが可能な多次元配列のためのライブラリ. 中身はC言語等で実装されているので高速.
ここでは,機械学習の基礎を学ぶ際に使用するものを中心に, NumPyの基礎を記しておく. jupyterでの使用を想定していて,最後に変数だけ書いた行はその変数情報を表示するために書いてある.
import #
import numpy as npNumPyの配列(ndarray) #
- 1次元はベクトルで,2次元は行列.
- 1次元配列に縦ベクトル,横ベクトルの区別はない(転置しても変化無し).
リストをndarrayに変換 #
x = [1, 2]
x = np.array(x)
x # jupyterで変数の情報を表示出力
array([1, 2])np.array()で変換
2次元配列 #
A = np.array([[1, 2], [3, 4]])
A # jupyterで出力用出力
array([[1, 2],
[3, 4]])転置 #
ndarray.Tで2次元以上の配列は転置がとれる.
1次元配列 #
x.T出力
array([1, 2])- 1次元配列は変わらない.縦ベクトル,横ベクトルの様な区別はない.
2次元配列 #
A.T出力
array([[1, 3],
[2, 4]])配列の形状 #
C = np.array([[1, 2, 3], [4, 5, 6]])
C # jupyterで出力用出力
array([[1, 2, 3],
[4, 5, 6]])ndarray.shapeで形状を確認できる.
C.shape出力
(2, 3)配列の形状の変更 #
ndarray.reshape()で配列の形状を変更できる.
上記の2行3列の \( C \) を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]])