スライドショー

【NumPy入門 np.ndarray.size】配列の要素数がわかるsizeとlenの違い

こんにちは!np.arrayには、配列の要素数を教えてくれる機能np.ndarray.sizeがあります。

似たような機能に、np.ndarray.shapeやlen関数がありますね。

特にlenとは似ている部分が多いので、この記事ではlenとの違いに着目してsizeについて解説してきます!

【Python入門】len関数でリストや辞書のサイズを取得する方法
更新日 : 2019年4月13日

sizeの使い方

※この記事のコードは、jupyter notebookjuputer labを使って動作を確認しました。
コードを試すときは是非これらを使ってみてください。

sizeはnumpy.ndarray (numpy.array)のインスタンス変数です。

関数ではないことに注意してください。

まずはライブラリをimportしておきます。

# コード In [1]:
import numpy as np

sizeで配列の要素数を取得する

np.array(np.ndarray)のsize属性を使うと、配列の形状を確認することができます。

確認のため、サンプル配列を作って試してみましょう。

# コード In [2]:
a = np.arange(0,20)
b = np.reshape(a, (4,5))
c = np.reshape(a, (2,2,5))
# コード In [3]:
a # Jupyterではprint(a)の代わりにaと変数名を書いても確認ができます。
# 出力結果 Out [3]:
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19])
# コード In [4]:
b
# 出力結果 Out [4]:
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19]])
# コード In [5]:
c
# 出力結果 Out [5]:
array([[[ 0,  1,  2,  3,  4],
        [ 5,  6,  7,  8,  9]],

       [[10, 11, 12, 13, 14],
        [15, 16, 17, 18, 19]]])

今回作った配列の型を確認しましょう。

Pythonではtype関数でオブジェクトの型を確認できました。

# コード In [6]:
print(type(a))
print(type(b))
print(type(c))
# 出力結果 [6]:
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>

sizeのようなインスタンス変数は、メソッドのように「インスタンス.変数名」としてアクセスすると中身が確認できます。

# コード In [7]:
print(a.size)
print(b.size)
print(c.size)
# 出力結果 [7]:
20
20
20

多重配列にsizeを適用した時、中に入っている配列の数ではなく、要素の数が数え上げられていることに注意してください。

len関数との違い

sizeと似た関数に、len関数があります。

この関数もlistやarrayの要素数を数えますが、多重配列に適用した場合、中にはいっている配列の数を数えているところが異なります。

# コード In [8]:
print(len(a))
print(len(b))
print(len(c))
# 出力結果 [8]:
20
4
2

この動作はlistに対して行っても同様です。

# コード In [9]:
a_ = list(a)
b_ = list(b)
c_ = list(c)
# コード In [10]:
print(len(a))
print(len(b))
print(len(c))
# 出力結果 [10]:
20
4
2

また、sizeはあくまでもnp.ndarrayのインスタンス変数なので、listなどの他の配列っぽいオブジェクトには使えません。

まとめ

この記事では、NumPyの配列の要素数を確認する機能、ndarray.sizeについて紹介しました。

sizeを始めとして、ndarrayには様々な便利な機能がついています。

listではできなかったあれこれが簡単に使える機能がたくさんあるので、ぜひ使いこなしてプログラミングに活かしてください!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

フクロウ

フクロウ

第一言語はPythonです。
皆さんRustやりましょう。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説