我有两个10x2x2 complex64阵列。我想找到哪一个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])
有更好的方法吗?
答案 0 :(得分:2)
从numpy 1.7开始,你可以做到:
a.all(axis=(1, 2)) & b.all(axis=(1, 2))
有关详细信息,请参阅docs,但如果您使用的是旧版本,我认为您需要重新整形,或者全部执行(1).all(1)。