numpy中np.r_行连接与np.c_列连接

官网说 .r_是沿第一轴连接(在数学中第一轴是行), Translates slice objects to concatenation along the first axis

           .c_是沿第二轴连接(列) Translates slice objects to concatenation along the second axis

np.r_中的r是row(行)的缩写,是按行叠加两个矩阵的意思,就是把两矩阵上下相加,要求列数相等,类似于pandas中的concat()。

np.c_中的c是column(列)的缩写,是按列叠加两个矩阵的意思,就是把两矩阵左右相加,要求行数相等,类似于pandas中的merge()。

1.np.r_

>>> a = np.array([[1, 2, 3],[7,8,9]])
>>> b = np.array([[4,5,6],[1,2,3]])
>>> np.r_[a,b]
array([[1, 2, 3],
       [7, 8, 9],
       [4, 5, 6],
       [1, 2, 3]])

对于np.array([1,2,3])这种形式的矩阵,虽然表面上打印出是行矩阵的形式,但其实它是一个一维的矩阵,默认是一个列向量,所以它其实是其一3行1列的向量,当它跟一个3行一列的运用np.c_[a, b]时,是列相加,行保持不变,所以会产生一个3行2列的结果。

>>> d=np.array([7,8,9])
>>> e=np.array([1, 2, 3])

>>> np.r_[d,e]
array([7, 8, 9, 1, 2, 3])

2.np.c_

>>> np.c_[a,b]
array([[1, 2, 3, 4, 5, 6],
       [7, 8, 9, 1, 2, 3]])
>>> np.c_[d,e]
array([[7, 1],
       [8, 2],
       [9, 3]])

完结!!

原文地址:https://www.cnblogs.com/wqbin/p/12842141.html