我们用零初始化一个 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()
不再使用“短路”逻辑,因此您不会看到小型阵列的速度优势。
- 编辑: 正如@Rachel 在评论中指出的那样,
关于python - 测试 numpy 数组是否仅包含零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18395725/