NumPyで配列を作る

数値演算ライブラリ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. ])

参考文献

PythonとJavaScriptではじめるデータビジュアライゼーション