numpy.c_和numpy.r_的区别及用法

19 篇文章 0 订阅
7 篇文章 0 订阅
  1. numpy.c_:

将切片对象沿第二个轴(按列)融合数组。

np.c_[np.array([1,2,3]), np.array([4,5,6])]

array([[1, 4], #输出结果
       [2, 5],
       [3, 6]])
np.c_[np.array([[1,2,3]]), 0, 0, np.array([[4,5,6]])]#注意括号里面的方括号个数

array([[1, 2, 3, 0, 0, 4, 5, 6]]) #输出结果
  1. numpy.r_:

将切片对象沿第一个轴(按行)融合数组。

 np.r_[np.array([1,2,3]), 0, 0, np.array([4,5,6])]
 
 array([1, 2, 3, 0, 0, 4, 5, 6]) #输出结果

注意:在numpy中,一个array的显示虽然是横着表示的,但它是列向量。

简单地总结一下用法就是:
  np.r_是按行连接两个或多个矩阵,就是把矩阵上下相连,要求列数相等,类似于pandas中的concat()
  np.c_是按列连接两个或多个矩阵,就是把矩阵左右相连,要求行数相等,类似于pandas中的merge()
简单记录一下,备忘

  1. numpy.r扩展

  numpy.r_是将一系列的序列合并到一个数组中,调用是要用中括号[],而不是()。
它有两种类型的参数,放在最前面的控制参数,以及后面逗号分开的要合并的序列。
控制参数其他的情况都很好理解,本文主要解释控制参数中包含了3个数的情况,第3个参数的作用。
其中第3个参数是用来控制后面序列的upgrade方式的,由于第二参数控制了最小的维度,后面的序列参数中可能需要一些维度提升才能进行合并。所以第三个参数控制的是提升的这个维度的放在序列的维度元祖中的位置,‘0’放在最后,‘1‘放到最前。 如

np.r_['0,2,0', [1,2,3],[4,5,6]]
#这个代码片段的控制参数0表示将在第一个维度对后面的序列进行合并,控制参数第二数2表示,合并后的结果最少要2维
#所以在合并前对维度较少的序列进行维度提升。而这个提升的方式则是有第3个参数决定的,后面两个序列的维度是(3,)
#由于三个参数是0,所以提升的维度在序列的维度元组中位置是0(即在维度数组的0号位置添加1),即提升后的维度为
#(3,1),所以提升后的第一个序列应该为[[1],[2],[3]],所以最后的结果是[[1],[2],[3],[4],[5],[6]]
np.r_['0,2,1', [1,2,3],[4,5,6]] #则提升后应该为[[1,2,3]],所以结果为[[1,2,3],[4,5,6]]

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值