Numpyのarray・ndarrayって何。 簡単に説明します。

機械学習で必ず使う、Numpy。
ndarray, arrayなど混合してしまったり、Pythonのlist [a, b, c, d, e]とかと違うのか。
などなど、よく分からないことが多いと思います。

正確なことは、下記に詳細が記載されております。
分かりますでしょうか? 私は、全くわかりませんでした。

■numpy.ndarray
https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.html

■numpy.array
https://docs.scipy.org/doc/numpy/reference/generated/numpy.array.html

簡単に言いますと
ndarray:
Numpyの高次元配列を扱うことが可能なクラス

array:
ndarray のクラス型をしたオブジェクトをreturnする、関数

ということです。
全く、性質が異なるものですね。

詳しいことは、下記のサイトに色々と載ってます。
是非、一度見てみるといいと思います。

http://www.kamishima.net/mlmpyja/nbayes1/ndarray.html

arrayで生成するndarrayのオブジェクトと、Python配列のListは違うものなのでしょうか。実験してみましょう。

#listを準備
z = [ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11]
#ndarray型のオブジェクト生成
nz = np.array(z)
print(nz)
print(z)

#print(nz)
[ 0 1 2 3 4 5 6 7 8 9 10 11]
#print(z)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

#print(nz)で出力した値は、ndarray型のオブジェクトです。
#print(z)で出力した値は、Pythonの配列 list、そのままです。

arrayの引数にデータ(z)を入れたことで、ndarray型のオブジェクトが出来上がりました。

確認してみましょう。
ndarray型のオブジェクトは、shape属性を持ちます。(配列の型を示す)

print(nz.shape)
print(z.shape)

#print(nz.shape)
(12,)
#print(z.shape)
AttributeError: ‘list’ object has no attribute ‘shape’

あたりまえですね。
Pythonの配列 list は、shape属性を持ち合わせて無いということです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です