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

Python中如何基于索引用列表值替换numpy二维数组元素

可以实现,用numpy的高级索引特性一行代码就能完成,不需要手动遍历数组。

完整实现代码

import numpy as np

# 定义原数组和映射列表
a = np.array([[6, 5, 9, 6, 1],[2, 9, 0, 6, 5],[8, 8, 0, 1, 8],[9, 5, 3, 6, 3]])
d = ['a','b','c','d','e','f','g','h','i','j']

# 核心逻辑:先将列表d转为numpy数组,再用a作为索引直接取值
c = np.array(d)[a]

结果验证

运行后输出的c和你预期的结果完全一致:

print(c)
# 输出:
# [['g' 'f' 'j' 'g' 'b']
#  ['c' 'j' 'a' 'g' 'e']
#  ['i' 'i' 'a' 'b' 'i']
#  ['j' 'f' 'd' 'g' 'd']]

原理解释

这是numpy自带的整数数组索引规则:当你用N维整数数组索引一维数组时,会返回和索引数组形状完全相同的新数组,每个位置的元素就是被索引数组对应索引处的取值,性能远高于Python层面的循环遍历,适合处理大规模数组。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:15:03