我有两个 numpy 数组:a
和 b
。我想选择 a == 1
和 b == 0
的所有索引。
也就是说,如果我有以下数组:
a = [0, 1, 3, 5, 1, 1, 2]
b = [1, 0, 2, 5, 3, 0, 6]
我想取回以下索引:
[1, 5]
我应该如何在 numpy 中执行此操作?我尝试使用以下方法(由显示 numpy、matlab 和 IDL 之间差异的快速引用指南建议):
(a == 1 and b == 0).nonzero()
但这给出了关于真值不明确的错误。
有什么想法吗?
最佳答案
In []: from numpy import array, logical_and
In []: a= array([0, 1, 3, 5, 1, 1, 2])
In []: b= array([1, 0, 2, 5, 3, 0, 6])
In []: logical_and(a== 1, b== 0).nonzero()[0]
Out[]: array([1, 5])
显然这也行得通:
In []: ((a== 1)& (b== 0)).nonzero()[0]
Out[]: array([1, 5])
关于python - 获取两个条件(在不同数组上)为真的数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6570473/