• Numpy函数(20190806)


    申明:博客纯属个人学习记录,不做任何其他用途,学习内容来源于: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("
    ")
    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 ('
    ') 
    print ('调用 power 函数:')
    print (np.power(a,2))
    print ('
    ')
    print ('第二个数组:')
    b = np.array([1,2,3])  
    print (b)
    print ('
    ')
    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('
    ')
    print('调用 amin() 函数:')
    print(np.amin(a, 1))   #指定轴,每一行的最小值
    print('
    ')
    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 ('
    ')
    print ('调用 ptp() 函数:')
    print (np.ptp(a))
    print ('
    ')
    print ('沿轴 1 调用 ptp() 函数:')
    print (np.ptp(a, axis =  1))   #每一行的最大值与最小值的差,返回的是一个数组。
    print ('
    ')
    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 ('
    ')
    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 ('
    ')
    print ('对 x 调用 argsort() 函数:')
    y = np.argsort(x)  
    print (y)
    print ('
    ')
    print ('以排序后的顺序重构原数组:')
    print (x[y])
    print ('
    ')
    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

  • 相关阅读:
    Tensorflow2.0基础
    Tensorflow2.0多层感知机实现mnist手写数字识别
    numpy数组的维度操作和axis的对应关系
    jupyter notebook使用
    darknet批量测试并保存图片
    darknet训练自身数据集的小问题
    PIL批量更改图片格式 及bat/cmd文件批量修改文件后缀名
    cv::Mat用法
    VS配置opencv、cuda及调用yolo动态链接库
    VS之 32 or 64
  • 原文地址:https://www.cnblogs.com/bltstop/p/11310383.html
Copyright © 2020-2023  润新知