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

Python中如何将多个非结构化可迭代对象拼接为2维numpy数组

解决方案

你的报错核心原因是第一个序列的元素是0维标量,和另外两个的1维元素维度不匹配,只需要先统一每个子数组的维度,再按列拼接即可,最简单的实现代码如下:

import numpy as np

# 原始示例数据
arr = [
       [1,2,3,4,5],
       [(1,2), (2,3), (3,4), (4,5), (5, 6)],
       np.array([[1,2,3], [2,3,4], [3,4,5],[4,5,6],[5,6,7]])
]

# 统一三个子数组为二维结构,长度均为5,分别对应1/2/3列
part1 = np.array(arr[0])[:, np.newaxis]  # 形状从(5,)转为(5,1)
part2 = np.array(arr[1])  # 转换后形状为(5,2)
part3 = arr[2]  # 本身已经是(5,3)的二维结构

# 按列方向拼接得到最终结果
result = np.concatenate([part1, part2, part3], axis=1)

打印result即可得到你需要的输出:

array([[1, 1, 2, 1, 2, 3],
       [2, 2, 3, 2, 3, 4],
       [3, 3, 4, 3, 4, 5],
       [4, 4, 5, 4, 5, 6],
       [5, 5, 6, 5, 6, 7]])

实现原理

  • 用[:, np.newaxis]给第一个一维数组额外增加一个维度,将原本的一维结构转为和另外两个子数组匹配的二维结构
  • np.concatenate指定axis=1代表按列方向拼接,会自动将三个子数组的同一行元素按顺序拼接,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 17:30:01