numpy中的np.c_和np.r_解释

五迷三道 提交于 2020-03-09 13:58:12

numpy中的np.c_和np.r_解释

np.c_和np.r_用于连接两个矩阵

  • np.r_ : 是按行叠加两个矩阵,也可以说是按列连接两个矩阵,就是把两矩阵上下相加,要求列数相等,类似于pandas中的concat()。
  • np.c_ : 是按列叠加两个矩阵的意思,也可以说是按行连接两个矩阵,就是把两矩阵左右相加,要求行数相等,类似于pandas中的merge()。

示例:

import numpy as np
a = np.array([1, 2, 3]).reshape(1,3)
b = np.array([4, 5, 6]).reshape(1,3)
 
print(a.shape,b.shape)
>(1, 3) (1, 3)

print("a=",a,"b=",b)
>a= [[1 2 3]] b= [[4 5 6]]
 
c = np.c_[a,b]
print("np.c_[a,b]:\n",c)
>np.c_[a,b]:
 [[1 2 3 4 5 6]] 
 
print(c.shape)
>(1, 6)

d=np.r_[a,b]
print("np.r_[a,b]:\n",d)
>np.r_[a,b]:
 [[1 2 3]
 [4 5 6]]
 
print(d.shape)
>(2, 3)

若不使用reshape(1,3),则默认是列向量,虽然依旧以行向量的形式显示,如下:

import numpy as np
 
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a.shape,b.shape)
>(3,) (3,)
 
print("a=",a,"b=",b)
>a= [1 2 3] b= [4 5 6]

c = np.c_[a,b]
print("np.c_[a,b]:\n",c)
>np.c_[a,b]:
 [[1 4]
 [2 5]
 [3 6]]
 
print(c.shape)
>(3, 2)

d=np.r_[a,b]
print("np.r_[a,b]:\n",d)
>np.r_[a,b]:
 [1 2 3 4 5 6]
 
print(d.shape)
>(6,)
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!