問題
ブール要素を含む配列があります。 目標は、配列内のこれらの要素のうちTrueである要素の数を判別することです。
解決策1
ナイーブなアプローチでは、配列内の各要素を反復処理する合計カウンターとforループが作成されます。 次に、その要素がtrueであるかどうかを確認し、trueである場合は、それをカウンターに追加します。
完了後、合計変数の値、つまり配列内のTrue要素の数を取得します。
解決策2
ナイーブなアプローチを見ているわけではないので、問題にインテリジェントにアプローチできます。
PythonはFalse値を0として扱い、その他の値はTrueとして扱うことを知っています。 その場合は、NumPy count_nonzero()関数を使用して問題を解決できます。
NumPy count_nonzero()関数を使用すると、特定の配列内のすべての非ゼロ値を計算できます。 または、配列内のTrue値の数をカウントできるようになります。
関数の構文は次のとおりです。
1 |
しびれ。count_nonzero((a、 軸=なし、 *、 keepdims=間違い)。 |
例1
count_nonzero()関数を使用して、配列内のゼロ以外の要素の数を決定する以下の例について考えてみます。
arr = [1,2,0,3,4,0,5,6,7]
print( “non-zero”、np.count_nonzero(arr))
上記のコードは、ゼロ以外の値の数を決定し、次のように結果を出力する必要があります。
例2
以下の配列に示すように、同じケースがブール値に適用されます。
1 |
arr = [[True, False, True]、 [True, False, False]] |
出力結果は次のとおりです。
これで、最初の問題は解決しました。
結論
count_nonzero()関数を使用して配列内のTrue要素の数を決定する方法を説明したこのチュートリアルに沿ってフォローしていただきありがとうございます。
ハッピーコーディング!!
The post NumPyカウントTrue appeared first on Gamingsym Japan.