numpy 拼接_Python笔记——Numpy 操作

Numpy. reshape 和 transpose 的顺序

links: numpy.reshape函数中参数order={'A','C','F'},其中的A怎么解释?
1) Transpose通过单个数据的位置来理解,每个元素根据矩阵的索引会有一个位置,转置之后元素的位置会变成新的位置,比如一个元素开始的位置是 (1,5) ,转置之后就是(5,1)了,又或者之前的位置是(1,1,0,6) 转置的参数设置为(1,2,3,0)之后,该元素的位置变为 (1,0,6,1),矩阵整体的shape也会相应变化,假如之前是(2,2,7,7), 转置之后就是(2,7,7,2);

2) Reshape
C 是按照行顺序, F 是按照列顺序,A 就是按照数据在内存中存储的顺序来。
比如:

7be5a86d3e25e9be2e7e43bad8532d85.png

更一般的理解,应该是 C 顺序准确的含义是从最里面的轴开始读写,而F顺序则是从最外面的轴开始读写;'C' means to read / write the elements using C-like index order, with the last axisindex changing fastest, back to the first axis index changing slowest.'F' means to read / write the elements using Fortran-like index order,with the first index changing fastest, and the last index changingslowest.
以上面的二维数据 a(3,2) 举例就是,C顺序就是先读写最里面 2 这个轴的数据,也就是得到 0 ,1 ,2,3,4,5 这样的顺序,而F顺序则是从最外层 3 这个轴的数据开始读写,得到 0 2 4 1 3 5,多维数据以此类推。

Numpy 排序

lins:朱卫军:Numpy进阶之排序小技巧

1) numpy.sort

使用方法: numpy.sort(a, axis=-1, kind=None, order=None) 参数:

  • a : 要排序的数组;
  • axis : 按什么轴进行排序,默认按最后一个轴进行排序;
  • kind :排序方法,默认是快速排序;
  • order : 当数组定义了字段属性时,可以按照某个属性进行排序;

这个axis意思 不是 对某一个轴进行操作,这一个轴保持不变, 而是操作过后只有这一个轴变化, 这就是为什么axis=0,按照行操作时候,不是对某一行排序,而是对列排序,排序后每个数字的行变化了,列不变化

2)numpy.argsort函数用于将数组排序后,返回数组元素从小到大依次排序的所有元素索引。

使用方法(和sort类似): numpy.argsort(a, axis=-1, kind=None, order=None) 参数:

  • a : 要排序的数组;
  • axis : 按什么轴进行排序,默认按最后一个轴进行排序;
  • kind :排序方法,默认是快速排序;
  • order : 当数组定义了字段属性时,可以按照某个属性进行排序

Numpy random 的用法

links:np.random用法

1)np.random.rand() --> 生成指定维度的的[0,1)范围之间的随机数,输入参数为维度

2)np.random.randn() --> 生成指定维度的服从标准正态分布的随机数,输入参数为维度

3)np.random.randint(low, high = None, size = None,dtype = 'l')--> 返回随机数或者随机数组成的array

4)np.random.random_integers(low,high = None,size = None)-->返回范围为[low,high] 闭区间 随机整数

5)np.random.random(size = (2,2))-->生成随机浮点数阵列

np.random.rand(2,2) 等价于 np.random.random(size = (2,2))

6)np.random.choice(a, size = None, replace = True, p = None)--> 从给定数组a中随机选择,p可以指定a中每个元素被选择的概率

Python中numpy数组的拼接、合并

links:Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)

苦逼程序员:Python中numpy数组的拼接、合并

对于两个shape一样的二维array来说:

  • 增加行(对行进行拼接)的方法有:
np.concatenate((ar1, ar2),axis=0)
np.append(ar1, ar2, axis=0)
np.vstack((ar1,ar2))
np.row_stack((ar1,ar2))
np.r_[ar1,ar2]
  • 增加列(对列进行拼接)的方法有:
np.concatenate((ar1, ar2),axis=1)
np.append(ar1, ar2, axis=1)
np.hstack((ar1,ar2))
np.column_stack((ar1,ar2))
np.c_[ar1,ar2]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值