多次元配列計算を効率よく実行できるPythonの数値計算ライブラリNumPyの配列型データ構造であるndarrayの作り方について説明する。
1. NumPyのインポート
2. arrayによるndarrayの生成
3. zeros / ones / emptyによるndarrayの生成
4. arangeによる規則的なndarrayの生成
5. reshapeによる1次元ndarrayの変形
6. リファレンス
1. NumPyのインポート
NumPyを使う際にはimportが必要。しばしばnpと略される。
import numpy as np
2. arrayによるndarrayの生成
numpy.arrayの引数に[]で囲った要素(つまりリスト)や()で囲った要素(つまりタプル)を与えると、ndarrayが生成される。
import numpy as np x = np.array([10, 11, 12]) print(x)
実行結果
[10, 11, 12]
引数のリストは複数与えることが可能。
import numpy as np y = np.array([[10, 11, 12],[13, 14, 15]]) print(y)
実行結果
[[10, 11, 12], [13, 14, 15]]
引数に別に作ったリストを与えても等価
import numpy as np y1 = [10, 11, 12] y2 = [13, 14, 15] y = np.array([y1, y2]) print(y)
実行結果
[[10, 11, 12], [13, 14, 15]]
タプル→ndarrayの例。
import numpy as np x = np.array((10, 11, 12)) print(x)
実行結果
[10, 11, 12]
3. zeros / ones / emptyによるndarrayの生成
numpy.zerosは全ての要素が0のndarrayを生成する。numpy.onesは全ての要素が1、numpy.emptyはランダムな値が入ったndarrayが生成される。
import numpy as np print(np.zeros(3))
実行結果
[0. 0. 0.]
import numpy as np print(np.ones((2, 3)))
実行結果
[[1., 1., 1.], [1., 1., 1.]]
import numpy as np print(np.empty((2, 3, 4)))
実行結果
[[[1.09918035e+155 1.27124315e+232 1.14448054e+243 9.92132497e+247] [6.01334637e-154 1.87673453e-152 1.28036948e-152 2.19528033e-152] [1.42709638e+248 6.52016598e+252 1.46923560e+195 6.52022889e+252]] [[2.43580036e-152 2.46088219e-154 8.83078595e+199 1.21906099e-152] [9.29380881e+242 2.17978855e+243 1.06400250e+248 6.87060129e+228] [1.32914175e+179 2.42766858e-154 2.32160024e-152 7.82137594e+179]]]
4. arangeによる規則的なndarrayの生成
numpy.arangeを用いるとrange関数のように任意のステップ刻みの一次元ndarrayを生成できる。引数は(start, stop)もしくは(start, stop, step)となりstepの指定がない場合は1刻みとなる。なおrange関数では小数は使えないがarangeでは小数が使える。
import numpy as np print(np.arange(5, 10))
実行結果
[5, 6, 7, 8, 9]
import numpy as np print(np.arange(5, 25, 5))
実行結果
[ 5, 10, 15, 20]
import numpy as np print(np.arange(1.5, 2.1, 0.2))
実行結果
[1.5, 1.7, 1.9, 2.1]
5. reshapeによる1次元ndarrayの変形
reshapeにより要素は変えずにndarrayを変形できる。1次元ndarrayを生成しreshapeすることで多次元のndarrayを作成可能。書式は以下の通り。
numpy.reshape(a, newshape, order='C')
引数 | 意味 |
---|---|
a : array_like | 変形するndarray |
newshape : int or tuple of ints | 変形後の |
order : {‘C’, ‘F’, ‘A’}, optional | 変形後の要素の置き換え順の指定(オプション) |
要素数6のndarrayを3x2の2次元ndarrayに変形する例。
import numpy as np print(np.arange(6).reshape(3, 2))
実行結果
[[0 1] [2 3] [4 5]]
要素数12のndarrayを2x2x3の3次元ndarrayに変形する例。
import numpy as np print(np.arange(12).reshape(2, 2, 3))
実行結果
[[[ 0 1 2] [ 3 4 5]] [[ 6 7 8] [ 9 10 11]]]
6. リファレンス
NumPy > Array creation
NumPy > Quickstart tutorial
Scipy.org > NumPy > numpy.ndarray
Scipy.org > NumPy > numpy.reshape
0 件のコメント:
コメントを投稿