3

对于我的数组:
array([[ 1, 2, 3, 4, 5], #a
[ 1, 3, 5, 7, 9],
[ 5, 10, 15, 20, 25],
[ 2, 4, 6, 8, 5]])


array([[ 1, 2, 3, 4, 16], #b
[ 1, 3, 16, 7, 9],
[ 5, 16, 15, 20, 25],
[ 2, 4, 6, 8, 5]])

我试图得到np.where((a==5 and b==16)). 我预计:

Out[1]: (array([0, 1], dtype=int64), array([4, 2], dtype=int64),

因为那是共享相同索引的地方516但相反,我得到了一个

ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()

当我尝试np.where((a.all()==5 and b.any()==16))时,我得到

Out[1]: (array([], dtype=int64),)

有任何想法吗?提前致谢。

4

1 回答 1

4

您想使用&而不是and

np.where((a==5) & (b==16))

在处理 numpy 数组时,您希望使用按位运算符而不是逻辑与。

于 2013-01-01T01:45:34.570 回答