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

如何拼接包含一维和零维NumPy数组的混合列表?

解决一维与零维NumPy数组的单行拼接问题

当然可以搞定这个问题!你遇到的报错是因为concatenate要求所有待拼接的数组维度数必须一致,而零维数组(标量数组)不符合这个要求。不过我们有几种简洁的单行方案:

方法1:用numpy.r_快速拼接(最省心)

numpy.r_是NumPy专门用于数组拼接的便捷工具,它会自动处理不同维度的数组,把零维数组自动提升为一维后完成拼接:

from numpy import array, r_
result = r_[array([1.0, 2.0]), array(3.0)]

执行后结果就是:array([1., 2., 3.]),完全符合预期。

方法2:用concatenate配合维度转换

如果你更倾向于使用concatenate,只需要把零维数组转换成一维数组即可,有两种简洁写法:

from numpy import array, concatenate
# 写法1:用列表包装零维数组
result = concatenate([array([1.0, 2.0]), [array(3.0)]])
# 写法2:通过None添加新轴转成一维
result = concatenate([array([1.0, 2.0]), array(3.0)[None]])

两种方式都是把array(3.0)这个零维数组转换成array([3.0])这样的一维数组,让concatenate可以正常工作。

如果你的混合列表里有多个不同维度的数组,numpy.r_会是更高效的选择——不需要逐个处理每个数组的维度,直接传入列表就能完成拼接。

内容的提问来源于stack exchange,提问作者Robert Manson-Sawko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:30:59