NumPyの配列を作成する関数
NumPyでは、配列を作成するための関数がいくつかあります。
今回は、配列の値を0で埋めるzeros()、配列の値を1で埋めるones()、配列の値を指定数増加させるarange()、配列の値を等間隔に配置するlinspace()関数の説明をします。
配列の値を0で埋めるzeros()関数
zeros()関数は、配列の値を0(ゼロ)で埋めます。
np.zeros(配列数)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
一次元配列 >>> np.zeros(3) array([0., 0., 0.]) 二次元配列 >>> np.zeros((2,3)) array([[0., 0., 0.], [0., 0., 0.]]) 三次元配列 >>> np.zeros((2,3,4)) array([[[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.]], [[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.]]]) |
値の型はデフォルトでは float型なので、int型にしたい場合は、以下のようにdtype=intを指定します。
1 2 3 4 5 6 7 8 |
>>> np.zeros((2,3,4), dtype=int) array([[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]]) |
配列の値を1で埋めるones()関数
ones()関数は、配列の値を1で埋めます。
np.ones(配列数, [dtype=型])
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
一次元配列 >>> np.ones(3) array([1., 1., 1.]) 二次元配列 >>> np.ones((2,3)) array([[1., 1., 1.], [1., 1., 1.]]) 三次元配列 >>> np.ones((2,3,4)) array([[[1., 1., 1., 1.], [1., 1., 1., 1.], [1., 1., 1., 1.]], [[1., 1., 1., 1.], [1., 1., 1., 1.], [1., 1., 1., 1.]]]) |
ones()関数は、zeros()関数と同じように値の型はデフォルトではfloat型なので、int型にしたい場合は、以下のようにdtype=intを指定します。
1 2 3 4 5 6 7 8 |
>>> np.ones((2,3,4), dtype=int) array([[[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]], [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]]) |
値を指定数増加させるarange()関数
arange()関数は、指定した数分増加させた値を配列にします。
引数の必須値は終了値で、終了値になる前までの値を配列に追加します。
開始値のデフォルトは0、増加値のデフォルトは1です。
なお、値には小数を使うこともできます。
np.arange([開始値], 終了値, [増加値])
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
開始値=0(デフォルト)、終了値=10、増加値=1(デフォルト) >>> np.arange(10) array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 開始値=3、終了値=10、増加値=1(デフォルト) >>> np.arange(3, 10) array([3, 4, 5, 6, 7, 8, 9]) 開始値=3、終了値=10、増加値=2 >>> np.arange(3, 10, 2) array([3, 5, 7, 9]) 開始値=3.1、終了値=10.2、増加値=2.1 >>> np.arange(3.1, 10.2, 2.1) array([3.1, 5.2, 7.3, 9.4]) |
指定した範囲を等間隔に値を配置するlinspace()関数
linspace()関数は、指定された数の要素を持ち、指定された開始値と終了値の間に等間隔で配置された配列を作成します。
要素数のデフォルトは50で、省略することができます。
また、値の型はデフォルトがfloatで、整数で表示したい場合は、dtype=intとします。
linspace(開始値, 終了値, [要素数], [dtype=型])
1 2 3 4 |
>>> np.linspace(1, 10, 5) array([ 1. , 3.25, 5.5 , 7.75, 10. ]) >>> np.linspace(1, 10, 5, dtype=int) array([ 1, 3, 5, 7, 10]) |