numpy函数学习

NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy可以很自然的使用数组合矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。

roll

沿给定轴滚动数组元素。超出最后位置的元素将在第一个位置重新引入。

numpy.roll(a, shift, axis=None)

参数

  • a: array_like
    输入数组
  • shift:int或int类型的tuple
    元素移位的位置数。如果是一个元组,那么轴必须是一个相同大小的元组,并且每个给定轴被相应的数字移动。如果值是int当axis是int类型的tuple,那么对所有给定的轴使用相同的值。
  • axis:int或int类型的tuple
    可选元素沿其移动的一个或多个轴。默认情况下,在移动之前将阵列弄平,然后恢复原始形状。

返回值

  • res:ndarray
    输出数组,shape与a相同。
    在这里插入图片描述

rot90

在轴指定的平面中将array旋转90度。旋转方向是从第一个轴到第二个轴。

numpy.rot90(m, k=1, axes=(0, 1))

参数

  • m:array_like
    二维或二维数组
  • k:integer
    阵列旋转90度的次数
  • axes:(2:)array_like
    array在轴定义的平面中旋转。轴必须不同。

返回值

  • y:ndarray
    m的旋转视图
    在这里插入图片描述

min/max

传入一个a,并取a在axis方向上的最小值最大值。

np.max(a, axis=None, out=None, keepdims=False)
np.min(a, axis=None, out=None, keepdims=False)

在这里插入图片描述

minimum/maximum

传入两个x和y,x和y逐位比较取最小值最大值。

np.maximum(x, y, out=None)
np.minimum(x, y, out=None)

在这里插入图片描述

lexsort

实现对数组或列表按照某一行或列进行排序。按照一个键值序列提供一个间接稳定的排序。

lexsort(keys, axis=-1)
  • 利用lexsort对二维数组按照某一行排序
    lexsort的键参数是二维数组时,对行排序,排序的方式是先对最后一行排序,当有相同元素时,然后按照倒数第二行对应的元素排序,……依次类推。
    例如:a1返回的是a的最后一行按照从小到大排列后所对应的索引值,比如最后一行为[6,2,9,5],从小到大排列为:2,5,6,9;其对应的索引号为:1,3,0,2.
    如果对a按照第二行升序排列,当有相同项时按照第一行升序排序.

    import numpy as np
    a = np.array([[1,2,1,5],[5,3,6,9],[6,2,9,5]])
    a.shape
    a
    #对a按照最后一行排序
    a1 = np.lexsort(a)
    a1
    a.T[a1].T
    #或者
    a[:, a1]
    #对a按照最后一行排序2
    a4 = np.lexsort(a[-1, None])
    a4
    a.T[a4].T
    #对a按照第二行升序排列,当有相同项时按照第一行升序排序
    a2 = np.lexsort(a[0:2, :])
    a2
    a.T[a2].T
    #或者
    a[:, a2]
    #对a按照第一行排序
    a3 = np.lexsort(a[::-1, :])
    a3
    a.T[a3].T
    #或者
    a[:, a3]
    #对a按照第一行排序2
    a5 = np.lexsort(a[0, None])
    a5
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 利用lexsort对二维数组按照某一列排序
    只需将数组矩阵做转置,将列变成行,行变成列就可以了。例如:对a矩阵按照第二列升序排列,当遇到相同元素时按照第一列升序排列。首先对a矩阵装置,这样矩阵的列变成了行,然后在对行按照第二行升序的方式排列,都获取相应的序列编号。

    	a = np.array([[1,2,1,5],[5,3,6,9],[6,2,9,5]])
    	a.shape
    	a
    	#按最后一列顺序排序
    	a1 = np.lexsort(a.T)
    	a1
    	a[a1]
    	#或者
    	a[a1, :]
    	#按最后一列顺序排序2
    	a5 = np.lexsort(a.T[-1, None])
    	a5
    	a[a5]
    	#按最后一列逆序排序
    	a2 = np.lexsort(-a.T)
    	a2
    	a[a2]
    	#或者
    	a[a2, :]
    	#按第二列升序排序,当遇到相同元素按照第一列升序排列
    	a3 = np.lexsort(a.T[:2, :])
    	a3
    	a[a3]
    	#或者
    	a[a3, :]
    	#按照第一列排序
    	a4 = np.lexsort(a[:, ::-1].T)
    	a4
    	a[a4]
    	#或者
    	a[a4, :]
    	#按照第一列排序2
    	a6 = np.lexsort(a.T[0, None])
    	a6
    	a[a6]
    

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

set_printoptions

set_printoptions(precision=None, threshold=None, edgeitems=None, 
				linewidth=None, suppress=None, nanstr=None, infstr=None)

在这里插入图片描述

#全部打印
np.set_printoptions(threshold=sys.maxsize)

参考资料

1.Python numpy.roll函数方法的使用
2.Python numpy.rot90函数方法的使用
3.python中np.max与np.maximum的区别
4.Python实现二维数组按照某行或列排序的方法【numpy lexsort】
5.用python中的numpy.lexsort()对矩阵按照某行(列)排序
6.lexsort对二维矩阵某行某列进行排序
7.np.set_printoptions的相关属性

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值