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

如何将嵌套列表转换为元素为整数列表的2x2 Numpy矩阵

实现方案

你之前的操作没有达到预期,是因为默认情况下numpy会自动拆分嵌套的数值序列,生成高维数值矩阵,不会将内层列表保留为独立元素。只需要指定dtype=object即可实现需求:

代码示例

import numpy as np

lst = [([0, 0, 1, 1], [0, 1, 0, 1], [0, 2, 1, 2], [1, 1, 0, 0]), 
       ([0, 0, 1, 1], [0, 2, 1, 2], [0, 1, 0, 1], [1, 1, 0, 0])]

# 转换单个集合
numpy_array = np.array(lst[0], dtype=object).reshape(2, 2)
# 测试访问
print(numpy_array[0, 0][3]) # 输出结果为 1

# 批量转换整个列表所有集合
all_arrays = [np.array(item, dtype=object).reshape(2, 2) for item in lst]

原理解释

  • 当指定dtype=object时,numpy会将每个内层的4元素列表视为一个独立的对象存储,不会自动拆分展开
  • 后续reshape(2,2)只会修改外层数组的维度,不会影响内层列表的结构
  • 如果需要对内部列表做数值运算,可提前将内层列表转为numpy数组,访问逻辑保持不变:
    numpy_array = np.array([np.array(sub) for sub in lst[0]], dtype=object).reshape(2, 2)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:15:05