python - 一次获取 NumPy 数组中多个元素的索引(可以重复)

标签 python numpy

有没有办法一次性获取 NumPy 数组中多个元素的索引?

例如:

import numpy as np
a = np.array([1, 2, 4])
b = np.array([1, 1, 3, 2, 4])

我想找到a中每个元素在b中的索引,即:[0, 1, 3, 4] .

请注意:

  1. b 有重复的值,例如1 此处,方法例如 Getting the indices of several elements in a NumPy array at once 中的方法不起作用,因为它只能找到最左边或最右边的索引,而不是所有索引。因此,如果应用最左边的方法,则使用该方法将得到 [0, 3, 4]
  2. 我想遵守 a 中值的顺序,即结果中的第一个数字对应于 a 中的第一个值,第二个数字代表 a 中的第二个值,依此类推,例如[0, 1] 代表 a 中的 1[3] 代表 2 code> 在 a 中,而 [4] 代表 a 中的 4,所以答案的顺序是 [0,1,3,4]

最佳答案

感谢我的 friend @rongkaizhang,我在这里发布了他的精彩答案。

np.where(b == np.expand_dims(a, axis=1))[1]

关于python - 一次获取 NumPy 数组中多个元素的索引(可以重复),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61811499/

相关文章:

Python-如何将 struct.pack 值添加到将通过串行端口发送的整数

python - 3SUM(查找列表中所有唯一的三元组等于 0)

python - 如何在Python中计算数组的数组的乘积

python - numpy 数组的列连续清零

Python Pandas : How to broadcast an operation using apply without writing a secondary function

python - 如何将包含在我的自定义模块中的模块导入 python 交互式环境命名空间?

python - 如何删除 Python 列表中每个字符串元素的一部分?

python - 弱引用对象不再存在使用 python 和 mysql

python - 如何使用 Python 高效地选择子矩阵?

python - Numpy 相当于 if/elif/else,如果不满足条件则保留最后一个值