【发布时间】: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
这可能吗?
【问题讨论】:
我有两个长度分别为 53 和 82 的 numpy 数组 a 和 b。我想将它们合并到一个数组中,因为我想使用 53+82=135 长度的数组,比如调用它 c 进行绘图。
我试过了
c = a+b
但我收到 ValueError: shape mismatch: objects cannot be broadcast to a single shape
这可能吗?
【问题讨论】:
你需要使用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, )
【讨论】:
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]
【讨论】:
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 用于第二个数组...