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

如何将不同形状的Numpy整数组而非元素追加到目标数组中

解决方案核心

你需要将目标数组指定为object类型,这类numpy数组支持将任意形状、类型的子数组作为单个独立元素存储,刚好适配你的需求。

方法1:一次性构造(推荐)

如果所有待存入的数组已经确定,直接把它们放在Python列表中再转换为dtype=object的numpy数组即可,性能最优。

import numpy as np

# 定义待存入的子数组
B = np.array([1,2])
C = np.array(["hey"])
D = np.array([])

# 直接构造目标数组
A = np.array([B, C, D], dtype=object)

# 验证输出
print(A.tolist())
# 输出:[[1, 2], ['hey'], []]

方法2:动态追加

如果需要逐步往空数组里追加元素,初始化时就指定dtype=object,再用np.append操作即可:

import numpy as np

# 初始化空的object类型数组
A = np.array([], dtype=object)
B = np.array([1,2])
C = np.array(["hey"])
D = np.array([])

# 逐个追加子数组
A = np.append(A, B)
A = np.append(A, C)
A = np.append(A, D)

# 验证输出
print(A.tolist())
# 输出:[[1, 2], ['hey'], []]

原方法失败原因

你之前用append、concatenate、stack等方法失败,是因为numpy默认创建同质数组,要求所有元素的形状、数据类型一致,这类函数默认会尝试沿现有维度拼接数组内容,而不是把传入的数组当作独立元素存入。

注意事项

object类型的数组无法享受numpy的大部分向量化运算优化,如果后续不需要对A做批量数值运算,直接用Python列表存储这些子数组会更灵活,性能也更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:15:08