1. ホーム
  2. python

[解決済み] Pythonでサイズを使う

2022-03-01 16:18:17

質問

Pythonでndarray配列を作成しました。

temp = np.array([1, 2, 3, 4])

この配列の長さを測定するために

temp.size

または

np.size(temp)

はどちらも4を返します。しかし、この2つの式の違いは何なのでしょうかね?また、レナ画像を取得するためには、次のように書く必要があります。

>>> import scipy.misc
>>> lena = scipy.misc.lena()

不思議なのは、なぜlenaの後にブラケット・ペアがあるのか?lenaは行列ではないのですか?()がついているものは関数みたいなものです。lena()は何も入力せずにndarrayを返す関数なのはわかるけど。ただ、こうやって書くのは面倒な気がする。

Matlabでは、定数と関数の区別は非常に明確です。関数は()で定義して呼び出しますが,定数(あるいはあらかじめ保存されているもの)は,例えば "blobs.png"のように直接呼び出すことができます.

どのように解決するのですか?

np.size(temp) よりも少し一般的です。 temp.size . 一見すると、両者は同じことをやっているように見える。

>>> x = np.array([[1,2,3],[4,5,6]])
>>> x.size
6
>>> np.size(x)
6

に追加の引数を与えない場合、このようになります。 np.size . しかし、もしあなたが ドキュメント に対して np.size を使用すると、追加の axis パラメータがあり、これは対応する軸に沿った大きさを表します。

>>> np.size(x, 0)
2
>>> np.size(x, 1)
3

2つ目の質問に関してですが scipy.misc.lena は、ご指摘の通り関数です。行列ではありません。行列を返す関数なのです。この関数は(おそらく)その場でデータを読み込みます。 scipy.misc モジュールを使用します。これは 良い というもので、実はmatlabとそんなに変わらないんです。