百里屠苏top  

申明:博客纯属个人学习记录,不做任何其他用途,学习内容来源于:https://www.runoob.com/?s=numpy。

本节内容:

  • numpy 数学函数
  • numpy算数函数
  • numpy统计函数
  • numpy排序、条件筛选函数

 

1、Numpy数学函数

  • 三角函数
  • 舍入函数

1.1 三角函数、反三角函数、角度化弧度、弧度化角度

 

import numpy as np
a = np.array([0,30,45,60,90])
#角度转化为弧度再计算正弦值
b  = np.sin(a*np.pi/180)  # 角度 转化为弧度
print ('不同角度的正弦值:')
print(b)
print("\n")
f = np.arcsin(b)  #弧度值
print(f)
f2 = np.degrees(f)    #弧度转角度
print(f2)

 

1.2 舍入函数

 

numpy.around()

函数返回指定数字的四舍五入值。

 

numpy.around(a,decimals)

 

参数说明:

 

  • a: 数组
  • decimals: 舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置

 

numpy.floor()

     返回数字的下舍整数。

      坐标值上该点的左面的整数

numpy.ceil()

numpy.ceil() 返回数字的上入整数。

坐标值上该点的右面的整数

 

 

2、Numpy算数函数

NumPy 算术函数包含简单的加减乘除: add()subtract()multiply() 和 divide()以及倒数reciprocal()、幂power()、取余mod()等

需要注意的是数组必须具有相同的形状或符合数组广播规则。

 

numpy.power()

import numpy as np 
 
a = np.array([10,100,1000])  
print ('我们的数组是;')
print (a)
print ('\n') 
print ('调用 power 函数:')
print (np.power(a,2))
print ('\n')
print ('第二个数组:')
b = np.array([1,2,3])  
print (b)
print ('\n')
print ('再次调用 power 函数:')
print (np.power(a,b))   #对应位置元素的次方

结果:

 

 

              numpy.mod()

                numpy.mod() 计算输入数组中相应元素的相除后的余数。 函数 numpy.remainder() 也产生相同的结果。

                参数同power()函数,可以是一个数,也可以一个数组,是数组的话,也是对应位的元素做运算。

 

3、统计函数

  • numpy.amin()               最小值
  • numpy.amax()              最大值
  • numpy.ptp()                 最大值与最小值之差
  • numpy.percentile()      百分位数
  • numpy.median()          中位数(中值)
  • numpy.mean()             算数平均值
  • numpy.average()         平均值
  • numpy.std()                 标准差
  • numpy.var()                 方差

3.1  numpy.amin() 和 numpy.amax()

 

numpy.amin() 用于计算数组中的元素沿指定轴的最小值。

 

numpy.amax() 用于计算数组中的元素沿指定轴最大值

import numpy as np

a = np.array([[3, 7, 5], [8, 4, 3], [2, 4, 9]])
print('我们的数组是:')
print(a)
print('\n')
print('调用 amin() 函数:')
print(np.amin(a, 1))   #指定轴,每一行的最小值
print('\n')
print(np.amin(a))      #也可以不指定,整个数组中的最小值

结果:

 

 

3.2 numpy.ptp()

numpy.ptp()函数计算数组中元素最大值与最小值的差(最大值 - 最小值)。

 

import numpy as np 
 
a = np.array([[3,7,5],[8,4,3],[2,4,9]])  
print ('我们的数组是:')
print (a)
print ('\n')
print ('调用 ptp() 函数:')
print (np.ptp(a))
print ('\n')
print ('沿轴 1 调用 ptp() 函数:')
print (np.ptp(a, axis =  1))   #每一行的最大值与最小值的差,返回的是一个数组。
print ('\n')
print ('沿轴 0 调用 ptp() 函数:')
print (np.ptp(a, axis =  0))

 

 

3.3 numpy.percentile()

百分位数是统计中使用的度量,表示小于这个值的观察值的百分比。 函数numpy.percentile()接受以下参数。

numpy.percentile(a, q, axis)

参数说明:

  • a: 输入数组
  • q: 要计算的百分位数,在 0 ~ 100 之间
  • axis: 沿着它计算百分位数的轴

首先明确百分位数:

第 p 个百分位数是这样一个值,它使得至少有 p% 的数据项小于或等于这个值,且至少有 (100-p)% 的数据项大于或等于这个值。

举个例子:高等院校的入学考试成绩经常以百分位数的形式报告。比如,假设某个考生在入学考试中的语文部分的原始分数为 54 分。相对于参加同一考试的其他学生来说,他的成绩如何并不容易知道。但是如果原始分数54分恰好对应的是第70百分位数,我们就能知道大约70%的学生的考分比他低,而约30%的学生考分比他高。

这里的 p = 70。

 

 

 

4、排序、条件筛选函数

 

种类速度最坏情况工作空间稳定性
'quicksort'(快速排序) 1 O(n^2) 0
'mergesort'(归并排序) 2 O(n*log(n)) ~n/2
'heapsort'(堆排序) 3 O(n*log(n)) 0

 

 

 

 

 

 

4.1 numpy.sort()

numpy.sort() 函数返回输入数组的排序副本。函数格式如下:

numpy.sort(a, axis, kind, order)

参数说明:

  • a: 要排序的数组
  • axis: 沿着它排序数组的轴,如果没有数组会被展开,沿着最后的轴排序, axis=0 按列排序,axis=1 按行排序
  • kind: 默认为'quicksort'(快速排序)
  • order: 如果数组包含字段,则是要排序的字段
# 在 sort 函数中排序字段 
dt = np.dtype([('name',  'S10'),('age',  int)]) 
a = np.array([("raju",21),("anil",25),("ravi",  17),  ("amar",27)], dtype = dt)  
print ('我们的数组是:')
print (a)
print ('\n')
print ('按 name 排序:')
print (np.sort(a, order =  'name'))

结果:

 

4.2  numpy.argsort()

numpy.argsort() 函数返回的是数组值从小到大索引值

import numpy as np 
 
x = np.array([3,  1,  2])  
print ('我们的数组是:')
print (x)
print ('\n')
print ('对 x 调用 argsort() 函数:')
y = np.argsort(x)  
print (y)
print ('\n')
print ('以排序后的顺序重构原数组:')
print (x[y])
print ('\n')
print ('使用循环重构原数组:')
for i in y:  
    print (x[i], end=" ")

结果:

我们的数组是:
[3 1 2]


对 x 调用 argsort() 函数:
[1 2 0]


以排序后的顺序重构原数组:
[1 2 3]


使用循环重构原数组

1 2 3

不失为一个快速排序的方法!!!!!

 

4.3  numpy.lexsort()

numpy.lexsort() 用于对多个序列进行排序。把它想象成对电子表格进行排序,每一列代表一个序列,排序时优先照顾靠后的列。

这里举一个应用场景:小升初考试,重点班录取学生按照总成绩录取。在总成绩相同时,数学成绩高的优先录取,在总成绩和数学成绩都相同时,按照英语成绩录取…… 这里,总成绩排在电子表格的最后一列,数学成绩在倒数第二列,英语成绩在倒数第三列。

 

4.4 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 指定算法沿着指定轴对数组进行分区

 

 

 

 

 

 

4.5 numpy.argmax() 和 numpy.argmin()

numpy.argmax() 和 numpy.argmin()函数分别沿给定轴返回最大和最小元素的索引。

 

4.6 numpy.nonzero()

numpy.nonzero() 函数返回输入数组中非零元素的索引。

 

4.7 numpy.where()

numpy.where() 函数返回输入数组中满足给定条件的元素的索引。

4.8 numpy.extract()

numpy.extract() 函数根据某个条件从数组中抽取元素,返回满条件的元素。

详细内容参考菜鸟教程:https://www.runoob.com/numpy/numpy-sort-search.html

 

posted on 2019-08-06 19:11  百里屠苏top  阅读(246)  评论(0编辑  收藏  举报