(6)多次元数値配列のこと(np.ndarray()とnp.zeros())

NumPyの多次元数値配列(行列ともいう)ndarrayは画像解析や機械学習には必須の基礎知識だ。Pythonのリストやタプルに似ていてスライスはできるが、計算は数値しか扱えない。(ただし文字列のタプルをarrayに変換するアトリビュートnp.matrix()がある。)
計算を効率化する数々のアトリビュートがある。単純な数値行列sampleという名前の例にして、基本の一部を以下に示す。

sample.size 要素数
sample.ndim 次元数
sample.shape 各次元の要素数
sample.size 要素数
sample.dtype 型

——————-
import numpy as np
img = np.zeros((400,400,3),np.uint8)

解説:numpy.zeros()は第1引数で指定するタプルの値を、第2引数で指定する要素型で値0を持つ三次元行列を作成する。
ここでは行数400、列数400、3チャンネルのすべての要素に、符号なし整数として0を持つnp.ndarray 行列を作成している。
print(img.ndim)とすると、3が表示され,三次元行列であることが確認できる。
値の変更はスライスを用いて img[255,255,0] = [0,0,0] のようにする。
Ndarray 行列間ては四則計算、累乗、平方根、三角係数、ソートなどが単純に行える。
np.add(x行列,y行列) 加算
np.subtract(x行列,y行列) 減算
三角関数は、nd.sin(0),nd.cos(0),nd.tan(0)など。

NumPyですべての要素を同じ値で初期化した配列ndarrayを生成する方法は以下の通り。形状(行数・列数など)shape、型dtypeを引数で指定して生成する方法。

numpy.zeros(): 0で初期化(ゼロ埋め)
numpy.ones(): 1で初期化
numpy.full(): 任意の値で初期化