一元函数
函数 | 描述 |
np.abs np.fabs | 绝对值,对于非负数值可以使用更快的np.fabs |
np.sqrt | 开根 |
np.square | 平方 |
np.exp | 计算指数( ) |
np.log,np.log10,np.log2,np.log1p | 求以e为底,以10为低,以2为低,以(1+x)为底的对数 |
np.sign | 将数组中的值标签化,大于0的变成1,等于0的变成0,小于0的变成-1 |
np.ceil | 朝着无穷大的方向取整,比如5.1会变成6,-6.3会变成-6 |
np.floor | 朝着负无穷大方向取证,比如5.1会变成5,-6.3会变成-7 |
np.rint,np.round | 返回四舍五入后的值 |
np.modf | 将整数和小数分隔开来形成两个数组 |
np.isnan | 判断是否是nan |
np.isinf np.isfinite | 判断是否是inf 判断有穷 |
np.cos,np.cosh,np.sin,np.sinh,np.tan,np.tanh | 三角函数 |
np.arccos,np.arcsin,np.arctan | 反三角函数 |
np.logical_not | 计算各个元素not x的真值 相当于-arr |
二元函数
函数 | 描述 |
np.add | 加法运算(即 1+1=2 ),相当于+ |
np.subtract | 减法运算(即 3-2=1 ),相当于- |
np.negative | 负数运算(即 -2 ),相当于加个负号 |
np.multiply | 乘法运算(即 2*3=6 ),相当于* |
np.divide | 除法运算(即 3/2=1.5 ),相当于/ |
np.floor_divide | 取整运算,相当于 // |
np.power | 对于第一个数组中的元素A和第二个元素B,求 A^B |
np.copysign | 对于第一个数组中的元素A和第二个元素B,B符号复制给A |
np.mod | 取余运算,相当于 % |
maximum fmax | 元素级的最大值计算 fmax 忽略NAN |
minimum fmin | 元素级的最小值计算 fmin 忽略NAN |
greater,greater_equal,less,less_equal,equal,not_equal | >,>=,<,<=,=,!= 的函数表达式 |
logical_and | & 的函数表达式 |
logical_or | | 的函数表达式 |
logical_xor | ^ 的函数表达式 |
聚合函数
函数名称 | NAN安全版本 | 描述 |
np.sum | np.nansum | 计算元素的和 |
np.prod | np.nanprod | 计算元素的积 |
np.mean | np.nanmean | 计算元素的平均值 |
np.std | np.nanstd | 计算元素的标准差 |
np.var | np.nanvar | 计算元素的方差 |
np.min | np.nanmin | 计算元素的最小值 |
np.max | np.nanmax | 计算元素的最大值 |
np.argmin | np.nanargmin | 找出最小值的索引 |
np.argmax | np.nanargmax | 找出最大值的索引 |
np.median | np.nanmedian | 计算元素的中位数 |
使用
np.sum
或者是a.sum
即可实现。并且在使用的时候,可以指定具体哪个轴。同样Python
中也内置了sum
函数,但是Python内置的sum
函数执行效率没有np.sum
那么高,可以通过以下代码测试了解到:布尔数组的函数
函数名称 | 描述 |
np.any | 验证任何一个元素是否为真 |
np.all | 验证所有元素是否为真 |
比如想看下数组中是不是所有元素都为0:
比如想要看数组中是否有等于0的数:
数组的集合运算
排序、条件刷选函数
NumPy 提供了多种排序的方法。 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性。 下表显示了三种排序算法的比较
种类 | 速度 | 最坏情况 | 工作空间 | 稳定性 |
'quicksort'(快速排序) | 1 | O(n^2) | 0 | 否 |
'mergesort'(归并排序) | 2 | O(n*log(n)) | ~n/2 | 是 |
'heapsort'(堆排序) | 3 | O(n*log(n)) | 0 | 否 |
numpy.sort()
numpy.sort()
函数返回输入数组的排序副本。函数格式如下:参数说明:
- a: 要排序的数组
- axis: 沿着它排序数组的轴,如果没有数组会被展开,沿着最后的轴排序, axis=0 按列排序,axis=1 按行排序
- kind: 默认为'quicksort'(快速排序)
- order: 如果数组包含字段,则是要排序的字段
numpy.argsort()
numpy.argsort()
函数返回的是数组值从小到大的索引值numpy.lexsort()
numpy.lexsort()
用于对多个序列进行排序。把它想象成对电子表格进行排序,每一列代表一个序列,排序时优先照顾靠后的列。这里举一个应用场景:小升初考试,重点班录取学生按照总成绩录取。在总成绩相同时,数学成绩高的优先录取,在总成绩和数学成绩都相同时,按照英语成绩录取…… 这里,总成绩排在电子表格的最后一列,数学成绩在倒数第二列,英语成绩在倒数第三列。
传入
np.lexsort
的是一个tuple,排序时首先排 nm,顺序为:amar、anil、raju、ravi 。综上排序结果为 [3 1 0 2]msort、sort_complex、partition、argpartition
函数 | 描述 |
msort(a) | 数组按第一个轴排序,返回排序后的数组副本。np.msort(a) 相等于 np.sort(a, axis=0) |
sort_complex(a) | 对复数按照先实部后虚部的顺序进行排序。 |
partition(a, kth[, axis, kind, order]) | 指定一个数,对数组进行分区 |
argpartition(a, kth[, axis, kind, order]) | 可以通过关键字 kind 指定算法沿着指定轴对数组进行分区 |
numpy.nonzero()
numpy.nonzero()
返回输入数组中非零元素的索引numpy.where()
numpy.where()
返回输入数组中满足给定条件的元素的索引numpy.extract()
numpy.extract()
根据某个条件从数组中抽取元素,返回满条件的元素其他函数补充
np.apply_along_axis
:沿着某个轴执行指定的函数:np.linspace
:用来将指定区间内的值平均分成多少份:np.unique
:返回数组中的唯一值