将两个不同形状的numpy数组合并到一个数组中

Posted

技术标签:

【中文标题】将两个不同形状的numpy数组合并到一个数组中【英文标题】:Merge two numpy array's of different shape into a single array 【发布时间】:2014-02-15 16:35:03 【问题描述】:

我有两个长度分别为 53 和 82 的 numpy 数组 ab。我想将它们合并到一个数组中,因为我想使用 53+82=135 长度的数组,比如调用它 c 进行绘图。

我试过了

c = a+b 

但我收到 ValueError: shape mismatch: objects cannot be broadcast to a single shape

这可能吗?

【问题讨论】:

【参考方案1】:

你需要使用numpy.concatenate而不是数组加法

c = numpy.concatenate((a, b))

实施

import numpy as np
a = np.arange(53)
b = np.arange(82)
c = np.concatenate((a, b))

输出

c.shape
(135, )

【讨论】:

【参考方案2】:

使用numpy.concatenate:

In [5]: import numpy as np

In [6]: a = np.arange(5)                                                                         

In [7]: b = np.arange(11)                                                                        

In [8]: np.concatenate((a, b))                                                                   
Out[8]: array([ 0,  1,  2,  3,  4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10])

对于一维数组,您也可以使用numpy.hstack

In [9]: np.hstack((a, b))                                                                       
Out[9]: array([ 0,  1,  2,  3,  4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10]

【讨论】:

我收到“只有整数标量可以转换为标量索引”的错误 @DineshVG 分享您的输入数据? 类似的东西 - 0.00764538, 0.00871098, 0.00959187, 0.01028805, 0.00884634 用于一个数组,0.17873864, 0.1273831 , 0.07530486, 0.08724997, 0.07698863, 0.04452086, 0.04699075, 0.06169301, 0.08862764, 0.12403291, 0.26097335, 0.49944897, 0.4297591 , 0.37918886 用于第二个数组...

以上是关于将两个不同形状的numpy数组合并到一个数组中的主要内容,如果未能解决你的问题,请参考以下文章

将多个 numpy 数组组合成不同形状之一

附加一个具有不同第一维的numpy数组

包含具有可变形状的多维 numpy 数组的 numpy 数组

有效地减去不同形状的numpy数组

将两个numpy数组转换为数据框

我有两个numpy数组列表,我希望将它们合并为一个numpy数组列表