import numpy as np
a = np.arange(4).reshape((2, 2))
a
array([[0, 1],
[2, 3]])
b = np.array([[4, 5],[6, 7]])
b
array([[4, 5],
[6, 7]])
a和b都是2x2的矩阵
将a和b在垂直方向上合并成4x1矩阵
np.vstack((a, b))
array([[0, 1],
[2, 3],
[4, 5],
[6, 7]])
将a和b在垂直方向上合并成2x4矩阵
np.hstack((a, b))
array([[0, 1, 4, 5],
[2, 3, 6, 7]])
如果我们有个一维向量怎么合并到二维矩阵上
v = np.array([8, 9])
将该向量在垂直方向合并到a上
np.vstack((a, v))
array([[0, 1],
[2, 3],
[8, 9]])
将该向量在水平方向上合并到a上,发现报错,原因是两个数组具有不同的维度
np.hstack((a, v))
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-12-712051f7bc6a> in <module>()
----> 1 np.hstack((a, v))
~/anaconda3/lib/python3.6/site-packages/numpy/core/shape_base.py in hstack(tup)
286 return _nx.concatenate(arrs, 0)
287 else:
--> 288 return _nx.concatenate(arrs, 1)
289
290
ValueError: all the input arrays must have same number of dimensions
采用np.column_stack函数将1维数组合并到二维数组上
np.column_stack((a, v))
array([[0, 1, 8],
[2, 3, 9]])