You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何提取子集向量元素在原向量中的索引?

解决方案

纯Python实现(无显式for循环)

利用字典建立元素到索引的映射,结合map()函数快速提取子集元素的索引,全程无显式for循环语句,符合Pythonic风格:

original = [3, 1, 4, 2, 5]
subset = [4, 1, 5]

# 构建元素与对应索引的映射字典
element_to_idx = dict(zip(original, range(len(original))))
# 提取子集元素的索引
indices = list(map(element_to_idx.get, subset))

print(indices)  # 输出: [2, 1, 4]

NumPy矢量化实现(适合大规模数据)

如果处理的是大规模数组,用NumPy的矢量化操作效率更高,同样无需显式循环:

import numpy as np

original = np.array([3, 1, 4, 2, 5])
subset = np.array([4, 1, 5])

# 对原数组排序并记录排序后的原索引
sorted_indices = np.argsort(original)
sorted_original = original[sorted_indices]
# 查找子集元素在排序后数组中的位置
pos = np.searchsorted(sorted_original, subset)
# 还原为原数组的索引
indices = sorted_indices[pos]

print(indices)  # 输出: [2 1 4]

内容的提问来源于stack exchange,提问作者Fabio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 19:21:30