数値演算ライブラリNumPyで配列を作るいろいろな方法をまとめてみた。
なお、NumPyを使用する時は、あらかじめpipコマンドでインストールしておき、
$ pip install numpy
プログラム中でインポートしなければならない。
import numpy as np
■一次元配列の作成
>>> x = np.array([1, 2, 3, 4, 5]) >>> array([1, 2, 3, 4, 5]) >>> y = np.array(range(1, 10))
■二次元配列の作成
>>> y = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) >>> y array([[1, 2, 3, 4], [5, 6, 7, 8]])
■配列の形状変換
>>> x = np.array(range(1, 28)) # 要素数が多い時はrange()関数が便利 >>> x array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]) >>> y = x.reshape(3, 3, 3) # 3×3×3の三次元配列に変換する >>> y array([[[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9]], [[10, 11, 12], [13, 14, 15], [16, 17, 18]], [[19, 20, 21], [22, 23, 24], [25, 26, 27]]])
デフォルト値を持った配列の作成
>>> x = np.zeros([2, 2]) # 2×2の大きさで要素がすべて0の配列を作る >>> x array([[ 0., 0.], [ 0., 0.]]) >>> x = np.ones([2, 2]) # 2×2の大きさで要素がすべて1の配列を作る >>> x array([[ 1., 1.], [ 1., 1.]])
■初期値を乱数(0以上1未満)で埋める
>>> x = np.random.random([2, 2]) >>> x array([[ 0.06344547, 0.18282186], [ 0.6673224 , 0.42957058]])
配列領域だけ確保する
>>> x = np.empty(3) # 要素数3の一次元配列を作る。要素は不定。 >>> x array([ 6.93010130e-310, 1.78969549e-316, 1.58101007e-322]) >>> x = np.empty([3, 2]) # 3×2の二次元配列を作る。要素は不定。 >>> x array([[ 1., 1.], [ 1., 1.]])
■均等間隔の要素を持つ配列を作る
>>> np.arange(2, 8, 1.3) # 2から8まで1.3刻み(8は含まない) array([ 2. , 3.3, 4.6, 5.9, 7.2]) >>> np.linspace(2, 8, 6) # 2から8まで6この数値 array([ 2. , 3.2, 4.4, 5.6, 6.8, 8. ])