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

使用numpy堆叠仅单维度不同的多维数组的实现方案咨询

你需要的输出是object类型的NumPy数组,无法通过常规的np.hstack/np.concatenate实现,因为这两个函数是用于同类型数组的维度拼接,而你的需求是将子数组、字符串作为独立对象存储,不需要手动写循环,有更简洁高效的实现方式。

最优实现方案(无循环,性能最优)

import numpy as np

# 原始数组
a = np.array([[[1],[1]],[[2],[2]],[[3],[3]],[[4],[4]]])
b = np.array(["a", "b", "c", "d"]).reshape(4,1,1)

# 创建形状匹配的空object类型数组
c = np.empty((4, 2), dtype=object)
# 批量赋值两列内容
c[:, 0] = a.tolist()
c[:, 1] = b.ravel()

该实现为向量化操作,性能远高于手动遍历拼接,输出结果和你要求的结构完全一致。

失败原因说明

np.concatenate类的拼接函数会尝试将两个数组的元素内容合并到同一维度下,会自动做类型对齐(比如把数值转成字符串),无法保留子数组作为独立元素的结构,因此不符合你的需求。

可选循环实现(仅适合小数据量场景)

c = []
for ai, bi in zip(a, b):
    c.append([ai, bi.item()])
c = np.array(c, dtype=object)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:45:06