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

Python/Numpy存在匹配维度时无法创建不规则数组问题咨询

问题原因

numpy的np.array()在构造数组时,会优先尝试将输入的序列堆叠为常规的多维数值数组,只有当输入元素的维度完全无法匹配堆叠时,才会退而生成dtype=object的数组。

  • 当A为(12,2)形状、B为(12,)形状时,两者的第一个维度长度都是12,numpy会默认尝试进行广播对齐堆叠,此时发现A的第二个维度长度为2、B没有第二个维度,无法完成广播,就会抛出你看到的报错。
  • 当A修改为(20,2)形状后,A的第一个维度长度为20、B的第一个维度长度为12,numpy直接判定无法堆叠为常规多维数组,因此直接生成元素为object类型的数组,不会触发报错。
正确存储方案

如果需要将两个形状不匹配的数组存为numpy的object数组,建议避开np.array()的自动堆叠逻辑,手动初始化后赋值:

import numpy as np
A = np.zeros((12,2))
B = np.zeros((12,))
# 先初始化长度为2的空object数组
C = np.empty(2, dtype=object)
C[0] = A
C[1] = B

如果你没有强制要求使用numpy数组存储,也可以直接用Python列表[A, B]存储两个数组,使用起来更灵活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:45:03