【Numpy】配列の作成
Numpyで配列の作成する方法を列挙します。
- np.array()
配列を作成するときの最もノーマルな方法です。
import numpy as np # ノーマル >>> np.array([1,2]) array([1, 2]) # 2次元 >>> np.array([[1,2],[3,4],[5,6]]) array([[1, 2], [3, 4], [5, 6]]) # listからの変換 >>> a = [1,2,3] >>> np.array(a) array([1, 2,3])
- np.arange()
整数の列を作るときはこれが便利です。
ただし0始まりに慣れないといけない。
# (0始まりで)3まで >>> np.arange(3) array([0, 1, 2]) # (0始まりで)10まで。2つおきに。 >>> np.arange(0,10,2) array([0, 2, 4, 6, 8]) # 10から1ずつ減らして0まで(0が入らないのがなんとも言えない) >>> np.arange(10,0,-1) array([10, 9, 8, 7, 6, 5, 4, 3, 2, 1]) # reshapeを使う。 >>> np.arange(10).reshape(2,5) array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]])
- np.linspace()
実数列を作りたいときはこれ。
(開始[○から],終了[●まで],分割数[■分割])で覚えると便利です。
※ただし分割数は要素数-1になる事に注意。
# 0から10まで3分割 >>> np.linspace(0,10,3) array([ 0., 5., 10.]) # 0から10まで2分割 >>> np.linspace(0,10,2) array([ 0., 10.]) # 0から10まで10分割(9ステップを10で割るから中途半端になる) >>> np.linspace(0,10,10) array([ 0. , 1.11111111, 2.22222222, 3.33333333, 4.44444444, 5.55555556, 6.66666667, 7.77777778, 8.88888889, 10. ]) # 0から10まで9分割 >>> np.linspace(0,10,11) array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
- zeros, ones, eye
全部ゼロ、全部1、○次の正方行列(単位行列)を作るとき。
# 0を5要素 >>> np.zeros(5) array([ 0., 0., 0., 0., 0.]) # 1を5要素 >>> np.ones(5) array([ 1., 1., 1., 1., 1.]) # 5x5の単位行列 >>> np.eye(5) array([[ 1., 0., 0., 0., 0.], [ 0., 1., 0., 0., 0.], [ 0., 0., 1., 0., 0.], [ 0., 0., 0., 1., 0.], [ 0., 0., 0., 0., 1.]])