python - 获取两个条件(在不同数组上)为真的数组索引

标签 python numpy

我有两个 numpy 数组:ab。我想选择 a == 1b == 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/

相关文章:

python - 在 numpy 中使用 ndim 1 或 2 向量是否有任何性能原因?

python - networkx:在边缘绘制文本

python - Python 图像库的透明度

Python/Node ZeroRPC 心跳错误

python - 测试 TF 服务模型失败,字节作为字符串和字符串作为字节混淆

python - pandas pivot_table 中的意外结果

python - 我不明白第二个支架是如何工作的

python - 来自 x、y 值的 Matplotlib 直方图,日期时间月份作为 bin

python - 如何在Python中测试线程

numpy - `numpy.array(value)` 是什么意思?