检查多维numpy数组的所有面是否都为0的最快方法是什么?
因此,对于一个简单的2D示例,我有:
x = np.random.rand(5, 5)
assert np.sum(x[0:, 0]) == 0
assert np.sum(x[0, 0:]) == 0
assert np.sum(x[0:, -1]) == 0
assert np.sum(x[-1, 0:]) == 0
虽然这对于正确的2D案例来说是可以的,但是为更大的尺寸编写代码有点乏味,我想知道是否可以使用一些聪明的numpy技巧来使它高效且可维护。
相关:如何获取所有数组边?
—
乔治
@ Demi-Lume很有道理。就我而言,一切都会> = 0,但您的评论会受到感激:)
—
卡
在3D情况下,您是指立方体的面(有六个)还是边(有十二个)?
—
Riccardo Bucco
@RiccardoBucco是的,有6张脸。但我的问题是,它可以去更高维度大于3
—
卢卡
np.all (x[:, 0] == 0)
比总和更安全吗?仅当所有数字均为正时,总和检验才正确。