PythonのNumPyライブラリには、配列内の非ゼロ要素の数を数えるための関数numpy.count_nonzero
があります。この関数は、Python 2.xの組み込みメソッド__nonzero__()
(Python 3.xでは__bool__()
に改名)を参照しています。このメソッドはPythonオブジェクトの「真実性」をテストします。例えば、任意の数値は非ゼロであれば真とみなされ、任意の文字列は空でなければ真とみなされます。
numpy.count_nonzero
関数の基本的な使用方法は以下の通りです。
import numpy as np
# 配列を生成
a = np.array([[0, 1, 7, 0], [3, 0, 2, 19]])
# 非ゼロ要素の数を数える
count = np.count_nonzero(a)
print(count) # 出力: 5
このコードでは、2次元配列a
の非ゼロ要素の数を数えています。出力結果は5
となります。
また、numpy.count_nonzero
関数にはaxis
パラメータもあります。これを使用すると、非ゼロ要素を数える軸を指定することができます。例えば、axis=0
を指定すると、各列に対する非ゼロ要素の数を数えることができます。
import numpy as np
# 配列を生成
a = np.array([[0, 1, 7, 0], [3, 0, 2, 19]])
# 各列に対する非ゼロ要素の数を数える
count = np.count_nonzero(a, axis=0)
print(count) # 出力: array([1, 1, 2, 1])
このコードでは、2次元配列a
の各列に対する非ゼロ要素の数を数えています。出力結果はarray([1, 1, 2, 1])
となります。
以上が、PythonとNumPyを使用して非ゼロ要素の数を数える基本的な方法です。データ分析などで大量のデータを扱う際に、このような関数は非常に便利です。