将两个不同形状的numpy数组合并到一个数组中
Posted
技术标签:
【中文标题】将两个不同形状的numpy数组合并到一个数组中【英文标题】:Merge two numpy array's of different shape into a single array 【发布时间】:2014-02-15 16:35:03 【问题描述】:我有两个长度分别为 53 和 82 的 numpy 数组 a 和 b。我想将它们合并到一个数组中,因为我想使用 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数组合并到一个数组中的主要内容,如果未能解决你的问题,请参考以下文章