NumPyのsize属性 – 配列の要素数の確認

sizeはNumPy配列(ndarray)の属性の1つで配列の要素数を保持しています。ここでは、size属性の確認方法を解説していきます。

目次

1. ndarray.size属性の使い方

sizeはndarrayの配列の要素数を保持しています。これを参照するには、以下のようにndarray.sizeと書きます。

なお、sizeは正確にはnumpy.ndarrayクラスのインスタンス変数です。クラスやインスタンス変数については、『【Python】オブジェクト指向プログラミングの概念と書き方』や『Pythonでのクラス(class)の使い方』で解説していますので、目を通してみてください。

numpy.ndarray.size

書き方:

ndarray.size

一緒に確認したい属性:

NumPyの配列のsizeプロパティは、配列の要素数をint型で保持しているインスタンス変数です(参照『Pythonのオブジェクト指向プログラミングの概念と書き方』)。

そして配列のsize属性の値は、「配列.size」で参照することができます。

早速以下のコードをご覧ください。1次元配列arr1を生成し、「arr1.size」でその要素数を参照しています。

In [1]:
import numpy as np
'''  1次元配列  '''
arr1 = np.array([1, 2, 3])
print(arr1)
print(arr1.size)
[1 2 3]
3

見たままの通り、要素数は3つなので、「3」と表示されています。

size属性は、2次元配列や3次元配列の場合も、奥行きや行、列の数に関係なく、その配列内の要素数を保持しています。

以下のコードは2次元配列ですが、行や列に関係なく、全体の要素数が保持されていることを確認できます。

In [2]:
'''  2次元配列  '''
arr2 = np.arange(6).reshape(2, 3)
print(arr2)
print(arr2.size)
[[0 1 2]
 [3 4 5]]
6

3次元配列の場合も、奥行きや、行、列に関係なく、全体の要素数が保持されています。

In [3]:
'''  3次元配列  '''
arr3 = np.arange(12).reshape(2, 2, 3)
print(arr3, '\n')
print(arr3.size)
[[[ 0  1  2]
  [ 3  4  5]]

 [[ 6  7  8]
  [ 9 10 11]]] 

12

以上が、NumPy配列のsize属性です。

2. len関数との違い

ndarray.sizeの他に、要素数を調べることのできるPythonの組み込み関数にlen()があります。

len関数とndarray.sizeは機能が異なります。

len関数は『Pythonのリストの長さ(要素数)を確認する方法まとめ』で解説しているように、二重構造、三重構造になっている場合は、もっとも外側の要素の数を戻します。

そのため、内側の要素の数を取得したい場合は、[]でスライスする必要があります。

実際のコードで確認しましょう。

まず、1次元配列の場合は、ndarray.sizeと違いはなく、要素数を戻します。

In [1]:
import numpy as np
'''  1次元配列  '''
arr1 = np.array([1, 2, 3])
print(arr1)
print(len(arr1))
[1 2 3]
3

2次元配列の場合は、len()は行数を戻します。列数を取得したい場合は、スライスで行を指定します。

In [2]:
'''  2次元配列  '''
arr2 = np.arange(6).reshape(2, 3)
print(arr2)
print(len(arr2))  #  行数
print(len(arr2[0]))  #  一行目の要素数
print(len(arr2[1]))  #  二行目の要素数
[[0 1 2]
 [3 4 5]]
2
3
3

3次元配列の場合、len()は奥行きの数を戻します。列数を取得したい場合は一重スライス、行数を取得したい場合は二重スライスで対処します。

In [3]:
'''  3次元配列  '''
arr3 = np.arange(24).reshape(2, 3, 4)
print(arr3, '\n')
print(len(arr3))  #  奥行き数
print(len(arr3[0]))  # 一番表の奥行きの列の数(=行数)
print(len(arr3[0][0]))  #  一番表の奥行きの1行目の要素数
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]] 

2
3
4

以上がndarray.sizeとlen関数の違いです。

3. まとめ

以上、NumPyのndarray.sizeは、Numpy配列の要素数を保持しています。Python組み込み関数のlen()と異なり、二次元・三次元配列になっても、行数や列数を返すのではなく、全体の要素数を返します。

なお、ndarray.sizeとともに、以下の二つの属性にも目を通しておくと良いでしょう。



よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次
閉じる