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("\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

原文地址:https://www.cnblogs.com/bltstop/p/11310383.html

时间: 2024-10-23 20:02:55

Numpy函数(20190806)的相关文章

Python机器学习之NumPy函数库

NumPy函数库是Python开发环境的一个独立模块,而且大多数Python发行版没有默认安装NumPy函数库,因此在安装Python之后必须单独安装NumPy函数库. 在Python shell开发环境中输入下列命令: >>> from numpy import * 如果没报错就表明NumPy函数库正确安装. 上述命令将NumPy函数库中的所有模块引入当前的命名空间. 然后在Python shell开发环境中输入下述命令: >>> random.rand(4,4) a

【机器学习算法实现】kNN算法__手写识别——基于Python和NumPy函数库

[机器学习算法实现]系列文章将记录个人阅读机器学习论文.书籍过程中所碰到的算法,每篇文章描述一个具体的算法.算法的编程实现.算法的具体应用实例.争取每个算法都用多种语言编程实现.所有代码共享至github:https://github.com/wepe/MachineLearning-Demo     欢迎交流指正! (1)kNN算法_手写识别实例--基于Python和NumPy函数库 1.kNN算法简介 kNN算法,即K最近邻(k-NearestNeighbor)分类算法,是最简单的机器学习算

numpy函数库中一些常用函数的记录

numpy函数库中一些常用函数的记录 最近才开始接触python,python中为我们提供了大量的库,不太熟悉,因此在<机器学习实战>的学习中,对遇到的一些函数的用法进行记录. (1)mat( ) numpy函数库中存在两种不同的数据类型(矩阵matrix和数组array),都可以用于处理行列表示的数字元素.虽然他们看起来很相似,但是在这两个数据类型上执行相同的数学运算可以得到不同的结果,其中numpy函数库中matrix与MATLAB中matrices等价. 调用mat( )函数可以将数组转

numpy函数库中一些经常使用函数的记录

##numpy函数库中一些经常使用函数的记录 近期才開始接触python,python中为我们提供了大量的库,不太熟悉.因此在<机器学习实战>的学习中,对遇到的一些函数的使用方法进行记录. (1)mat( ) numpy函数库中存在两种不同的数据类型(矩阵matrix和数组array),都能够用于处理行列表示的数字元素. 尽管他们看起来非常类似,可是在这两个数据类型上运行同样的数学运算能够得到不同的结果,当中numpy函数库中matrix与MATLAB中matrices等价. 调用mat( )

【机器学习算法实现】logistic回归__基于Python和Numpy函数库

[机器学习算法实现]系列文章将记录个人阅读机器学习论文.书籍过程中所碰到的算法,每篇文章描述一个具体的算法.算法的编程实现.算法的具体应用实例.争取每个算法都用多种语言编程实现.所有代码共享至github:https://github.com/wepe/MachineLearning-Demo     欢迎交流指正! (2)logistic回归__基于Python和Numpy函数库 1.算法简介 本文的重点放在算法的工程实现上,关于算法的原理不具体展开,logistic回归算法很简单,可以看看A

Numpy 函数总结 (不断更新)

本篇主要收集一些平时见到的 Numpy 函数. numpy.random.seed & numpy.random.RandomState np.random.seed() 和 np.random.RandomState 都用于生成随机数种子,np.random.seed() 是可以直接调用的方法,而 np.random.RandomState 则是一个产生随机数的容器,使用时需要创建实例对象,进而调用实例方法,如 np.random.RandomState(42).uniform() . 随机数

cs231n(一) KNN 和一些python numpy 函数

第一个作业的第一个问题,写KNN分类器,KNN的原理本身描述起来还是比较简单, 用到的一些函数: (1)numpy.flatnonzero(): 该函数输入一个矩阵,返回扁平化后矩阵中非零元素的位置(index) 这是官方文档给出的用法,非常正规,输入一个矩阵,返回了其中非零元素的位置 1 >>> x = np.arange(-2, 3) 2 >>> x 3 array([-2, -1, 0, 1, 2]) 4 >>> np.flatnonzero(x

numpy函数fromfunction分析

从函数规则创建数组是非常方便的方法.在numpy中我们常用fromfunction函数来实现这个功能. 在numpy的官网有这么一个例子. 1 >>> def f(x,y): 2 ... return 10*x+y 3 ... 4 >>> b = fromfunction(f,(5,4),dtype=int) 5 >>> b 6 array([[ 0, 1, 2, 3], 7 [10, 11, 12, 13], 8 [20, 21, 22, 23],

Numpy函数学习--genfromtxt函数

genfromtxt函数 今天学习时遇到了genfromtxt函数 world_alcohol = numpy.genfromtxt("world_alcohol.txt",delimiter=",",dtype = str) What is genfromtxt? genfromtxt函数创建数组表格数据 genfromtxt主要执行两个循环运算.第一个循环将文件的每一行转换成字符串序列.第二个循环将每个字符串序列转换为相应的数据类型. genfromtxt能够考