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

如何用Numpy二维数组的值作为索引查询一维数组?

Numpy实现二维数组索引映射一维数组的无循环方案

直接利用Numpy的整数数组索引特性就能实现,核心是注意Numpy的索引是从0开始的,而你的二维数组元素是1-based的索引值(1对应一维数组第一个元素),所以需要先做偏移处理,具体步骤如下:

代码示例

import numpy as np

# 定义你的二维数组
arr_2d = np.array([[3, 3, 3, 2],
                   [1, 5, 2, 3],
                   [4, 2, 3, 2],
                   [2, 3, 1, 3]])

# 定义一维数组(用具体值演示,对应x=10, y=20, z=30, q=40, p=50)
arr_1d = np.array([10, 20, 30, 40, 50])

# 核心操作:二维数组元素减1转为0-based索引,再索引一维数组
result = arr_1d[arr_2d - 1]

print(result)

输出结果

array([[30, 30, 30, 20],
       [10, 50, 20, 30],
       [40, 20, 30, 20],
       [20, 30, 10, 30]])

原理说明

  • Numpy允许直接用任意形状的整数数组作为索引,返回的数组形状和索引数组(这里是arr_2d - 1)完全一致
  • 因为你的二维数组中1对应一维数组的第一个元素x(即arr_1d[0]),所以必须将二维数组的每个元素减1,把1-based的索引转为Numpy要求的0-based索引

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 10:45:33