1. ホーム
  2. パイソン

[解決済み】NumPyのbool配列でtrueの要素の数を数える方法

2022-04-06 21:56:09

質問

私はboolean型のNumPy配列'boolarr'を持っています。私は、値が True . このタスクに特化した NumPy または Python ルーチンはありますか?それとも、私のスクリプトの中で要素を繰り返し処理する必要があるのでしょうか?

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

複数の選択肢があります。選択肢は以下の2つです。

boolarr.sum()
numpy.count_nonzero(boolarr)

以下はその例です。

>>> import numpy as np
>>> boolarr = np.array([[0, 0, 1], [1, 0, 1], [1, 0, 1]], dtype=np.bool)
>>> boolarr
array([[False, False,  True],
       [ True, False,  True],
       [ True, False,  True]], dtype=bool)

>>> boolarr.sum()
5

もちろん、それは bool -特有の回答です。より一般的には numpy.count_nonzero .

>>> np.count_nonzero(boolarr)
5