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

如何用Numpy根据指定轴位置从列表创建二维数组?

使用Numpy将值列表按坐标转换为二维数组

可以利用Numpy的高级索引特性来实现,这是最高效的方式,无需手动循环赋值。

实现步骤:

  • 先确定目标二维数组的形状:从你的X轴(list2)和Y轴(list3)取值范围来看,是3×3的数组。
  • 创建一个全0的初始数组。
  • 直接用Y轴坐标列表作为行索引、X轴坐标列表作为列索引,一次性将值列表的元素赋值到对应位置。

代码示例:

import numpy as np

list1 = [1, 2, 3]  # 值列表
list2 = [0, 1, 2]  # X轴位置(列索引)
list3 = [2, 1, 0]  # Y轴位置(行索引)

# 创建3×3的全0数组
result = np.zeros((3, 3), dtype=int)
# 通过高级索引完成批量赋值
result[list3, list2] = list1

print(result)

输出结果:

[[0 0 3]
 [0 2 0]
 [1 0 0]]

原理说明:

Numpy支持将两个一维数组作为索引对,result[行索引数组, 列索引数组]会把两组索引一一对应,将值列表的元素精准放到指定坐标位置。这里list3的每个元素对应行位置,list2对应列位置,list1的元素会依次填充到(2,0)、(1,1)、(0,2)这三个坐标点,完全匹配你的需求。这种方法时间复杂度为O(n),比手动循环赋值高效得多,尤其适合处理大规模数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 07:15:50