サイトアイコン CV & Technologies

二次元配列の初期化

NumPyを使うと簡単に二次元配列を作ることができます。ここでは、NumPyのzeros関数を使って要素が全てゼロの配列を作っています。

import numpy as np

array2d = np.zeros((4,10))
print array2d

zeros関数の第一引数に(4,10)と入れているので、
[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]] というように4*10の配列になります。”0.”となっているのは、浮動小数点型となっていることを反映しています。

(4,10,10)とすると41010の3次元配列が作れますし、さらに4次以上の多次元配列も作ることができます。

要素を1で初期化したい場合にはones関数を使います。

import numpy as np

array2d = np.ones((4,10))
print array2d

また、浮動小数点型でなく、任意の値で初期化したい場合もあると思います。そのような時には次のようにzerosで初期化してから値を足すと良いでしょう。または、onesで初期化してから値を掛け算しても良いでしょう。たとえば、全て4にしたい時には、次のようにします。

import numpy as np

array2d = np.zeros((4,10))+4
print array2d
[[ 4. 4. 4. 4. 4. 4. 4. 4. 4. 4.] [ 4. 4. 4. 4. 4. 4. 4. 4. 4. 4.] [ 4. 4. 4. 4. 4. 4. 4. 4. 4. 4.] [ 4. 4. 4. 4. 4. 4. 4. 4. 4. 4.]] というようになりました。こちらも、”4.”となっているのは、浮動小数点型となっていることを反映しています。

NumPyのzeros関数、ones関数は型を指定して配列を作成することができます。その場合は、第二引数に指定します。整数としたいならnp.int、もっと細かく符号なし8ビット整数(unsigned 8bit integer)としたいならnp.uint8というように指定します。浮動小数点型を明示する時も同様に、np.floatとします。

import numpy as np

array2d = np.ones((4,10),np.int)*4
print array2d
[[4 4 4 4 4 4 4 4 4 4] [4 4 4 4 4 4 4 4 4 4] [4 4 4 4 4 4 4 4 4 4] [4 4 4 4 4 4 4 4 4 4]] このように、すべて整数として保持されることになります。
モバイルバージョンを終了