我有两个 10x2x2 复数 64 数组。我想找出哪个 2x2 数组中的一个或两个不全为零:
import numpy
a = numpy.zeros((10,2,2), "complex64")
b = numpy.ones((10,2,2), "complex64")
empty_one_or_both = (a.reshape(10,4) != 0).all(axis=1) * (b.reshape(10,4) != 0).all(axis=1) # EDIT
目标是仅对非空对执行其他操作,例如:
numpy.sqrt(a[empty_one_or_both])
有更好的方法吗?
最佳答案
从 numpy 1.7 开始,你可以这样做:
a.all(axis=(1, 2)) & b.all(axis=(1, 2))
请参阅docs了解更多信息,但如果您使用的是旧版本,我认为您必须重新调整形状,或者执行 all(1).all(1)。
关于python - 两个形状相同的复杂多维数组的条件检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10212367/