python - 从 numpy 矩阵中查找值列表的行索引

标签 python numpy

有没有一种聪明的方法可以使用 numpy 查找矩阵中值列表的索引?我们总是可以通过迭代的方式来完成,但是有没有快速快捷的方法可用?

我们有一个矩阵:

[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]

和一个列表:

[3,4,7,11]

这里需要的是3,4,7,11在矩阵对应行的索引,即[2,0,0,1]

这显然是用迭代方法编写的简单代码,但我们正在寻找任何现成的实现。

提前致谢。

最佳答案

对于您的示例,这是可行的:

In [17]: import numpy as np

In [18]: a = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])

In [19]: l = [3,4,7,11]

In [20]: np.where(a == np.array(l)[:, None])[1]
Out[20]: array([2, 0, 0, 1])

关于python - 从 numpy 矩阵中查找值列表的行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47900463/

相关文章:

python - Cython:什么时候应该将字符串定义为 char*、str 或 bytes?

python - 如何防止在 kivy 应用程序中关闭 x 上的窗口

python - 是否有 numpy.all() 的倒置版本?

python - 如何将 np.nan 类型 Nat 更改为 NaN

python - Numpy/Python 乘以大型数组的数值不稳定问题

python - 你如何在 Python 中使用 numpy 处理自然日志(例如 "ln()")?

python - 如何从 NumPy 矩阵中的列而不是行中减去?

python - python中的轮廓变形

python - 如何设置 Python nosetests(版本 1.1.2)显示日志输出?

python - 用 0 错误 :nan not supported for input type 替换 nan