官网说 .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]])
完结!!