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

如何通过numpy数组元素值从列表对应索引取值生成新数组

错误原因分析

  • 第一种写法np_array[indices_list]的逻辑是用indices_list里的元素作为下标取np_array第0轴的元素,你的np_array第0轴长度只有2,indices_list里的7、8、9远大于最大下标1,自然触发越界错误,和你要的映射逻辑完全不符。
  • 第二种写法indices_list[np_array]的问题是Python原生列表不支持用numpy多维数组作为下标取值,只接受整数、切片等基础索引类型,所以会报类型错误。

正确实现

numpy数组本身支持高级索引,你只需要先把Python列表转成numpy数组,再用原numpy数组作为下标取值即可,示例代码如下:

import numpy as np

# 原始数据
np_array = np.array([[1, 1, 2], [2, 1, 2]])
indices_list = [7,8,9]

# 核心实现
np_array_expected = np.array(indices_list)[np_array]

运行后输出结果和你预期一致:

array([[8, 8, 9],
       [9, 8, 9]])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:36:04