NumPy配列にゼロのみが含まれているかどうかをテストする 質問する

NumPy配列にゼロのみが含まれているかどうかをテストする 質問する

以下のように、NumPy 配列をゼロで初期化します。

np.zeros((N,N+1))

しかし、与えられた n*n numpy 配列行列のすべての要素がゼロであるかどうかをどのように確認するのでしょうか。
メソッドは、すべての値が実際にゼロである場合に True を返す必要があります。

ベストアンサー1

ここに投稿された他の回答も有効ですが、最も明確で効率的な関数はnumpy.any():

>>> all_zeros = not np.any(a)

または

>>> all_zeros = not a.any()
  • これは RAM の使用量が少ないため、 よりも優先されますnumpy.all(a==0)。(用語によって作成される一時配列は必要ありませんa==0。)
  • numpy.count_nonzero(a) また、最初のゼロ以外の要素が見つかったときにすぐに戻ることができるため 、 よりも高速です 。
    • 編集:@Rachel がコメントで指摘したように、np.any()「短絡」ロジックは使用されなくなったため、小さな配列では速度上の利点は見られません。

おすすめ記事