python - 测试 numpy 数组是否仅包含零

标签 python numpy

我们用零初始化一个 numpy 数组,如下所示:

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

但是我们如何检查给定 n*n numpy 数组矩阵中的所有元素是否为零。
如果所有值确实为零,则该方法只需要返回 True。

最佳答案

此处发布的其他答案将起作用,但最清晰和最有效的功能是 numpy.any() :

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

>>> all_zeros = not a.any()
  • 这比 numpy.all(a==0) 更受欢迎,因为它使用的 RAM 更少。 (它不需要由 a==0 术语创建的临时数组。)
  • 另外,它比 numpy.count_nonzero(a) 更快,因为它可以在找到第一个非零元素时立即返回。
    • 编辑: 正如@Rachel 在评论中指出的那样,np.any() 不再使用“短路”逻辑,因此您不会看到小型阵列的速度优势。

关于python - 测试 numpy 数组是否仅包含零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18395725/

相关文章:

python - 优化变点测试循环

python - 使用包含多种类型的 numpy 数组创建 Pandas DataFrame

python - 在 python 3 中将 numpy 数组列表转换为字符串时的省略号

python - 使用 numpy.loadtxt 时无法将字符串转换为 float

python - Numpy 数组和 python 属性

python - 为什么一些 numpy 数据类型是 JSON 可序列化的,而另一些则不是?

python - 如果小于 x,则弹出值

Python:使用给定列绘制带有 x 轴的 Pandas 数据框的条形图

python - 将 Python 对象列表减少为 object.id -> object 的 dict

python - 奇点容器+Python+PyTorch : Why does 'import torch' work on Arch Linux host but fails on Centos 7 host?