我试图用多个不同形状的numpy数组填充一个numpy数组。例如,我有两个numpy数组,形状分别是(4,1000)和(4,2000),我想将它们组合成一个numpy数组。
目前,我的数据存储在这样的列表中:[numpy array,numpy array,...,numpy array].我想把它转换成一个像这样的numpy数组结构:numpy array(numpy array,numpy array,...,numpy array).
我已经遇到了一些建议使用dtype=object的指南,但我仍然遇到了一个错误:“ValueError:无法将输入数组从形状(4,1597)广播到形状(4,)"。
我的方法中是否遗漏了什么?有没有其他方法可以有效地解决这个问题?
2条答案
按热度按时间llmtgqce1#
你没有提供一个例子,你的代码,但这对我来说是工作。
字符串
我不清楚在这种情况下
np.array
比list
有什么优势。xjreopfe2#
在过去的几个numpy版本中,“参差不齐”阵列的创建已经收紧。
这曾经奏效:
字符串
现在(1.24?)我们已经明确给予了dtype:
型
通常情况下,
np.array
构成一个多维数字dtype数组。object
dtype是一个后备选项,在数组中存储引用,而不是数字。这样的数组几乎是列表。它的计算是以列表解析的速度执行的(如果有的话),而不是数字数组的快速编译速度。2d数组也可以这样打包-如果第一维不同:
型
dtype
在第一个维度匹配时没有帮助:型
相反,你必须创建一个“空白”数组,并填充它:
型
如果所有维度都匹配,并且您不需要正确的n-d数字数组,则也需要此创建/填充。所以这是一个好主意,不管维度组合如何。