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

为何np.array对同操作的ndarray列表返回不同维度?

为什么np.array_split后转np.array会出现维度差异?

这俩情况的差异根源在np.array_split的分割逻辑和np.array()对不同形状子数组的处理规则:

  • 第一种情况:121不能被5整除,np.array_split会生成长度不均的子数组。具体来说,121拆分后是25、25、24、24、23,对应每个子数组的shape是(25,3072)、(25,3072)、(24,3072)、(24,3072)、(23,3072)。因为这些子数组的第一维度长度不一样,np.array()没办法把它们堆叠成更高维的数组,只能把每个子数组当作单独的元素,最终生成一个shape为(5,)的一维object数组(数组里的每个元素是不同形状的ndarray)。

  • 第二种情况:1000能被5整除,1000/5=200,所以每个子数组的shape都是(200,3072),所有子数组的形状完全一致。这时候np.array()会自动把它们沿新的维度堆叠起来,最终得到shape为(5,200,3072)的三维数组。

你可以自己验证一下,比如在第一种情况里执行:

print([arr.shape for arr in train_folds_X])

就能看到每个子数组的形状确实不一样。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:30:59