array1.shape
给出 (180, )array2.shape
给出 (180, 1)
这两者有什么区别?
由于这种差异,我无法将它们堆叠在一起
np.vstack((array2, array1))
我应该对 array1 形状进行哪些更改,以便我可以将它们堆叠起来?
最佳答案
让我们定义一些数组:
>>> x = np.zeros((4, 1))
>>> y = np.zeros((4))
按原样,这些数组无法堆叠:
>>> np.vstack((x, y))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/numpy/core/shape_base.py", line 230, in vstack
return _nx.concatenate([atleast_2d(_m) for _m in tup], 0)
ValueError: all the input array dimensions except for the concatenation axis must match exactly
但是,通过简单的更改,它们将堆叠:
>>> np.vstack((x, y[:, None]))
array([[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.]])
或者:
>>> np.vstack((x[:, 0], y))
array([[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]])
关于python - 使用 vstack 在 numpy 中堆叠数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39462433/