NumPy 统计函数

NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等。 函数说明如下:

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 ('再次调用 amin() 函数:') print (np.amin(a,0)) print ('\n') print ('调用 amax() 函数:') print (np.amax(a)) print ('\n') print ('再次调用 amax() 函数:') print (np.amax(a, axis = 0))

输出结果为:

  1. 我们的数组是:
  2. [[3 7 5]
  3. [8 4 3]
  4. [2 4 9]]
  5.  
  6. 调用 amin() 函数:
  7. [3 3 2]
  8.  
  9. 再次调用 amin() 函数:
  10. [2 4 3]
  11.  
  12. 调用 amax() 函数:
  13. 9
  14.  
  15. 再次调用 amax() 函数:
  16. [8 7 9]

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))

输出结果为:

  1. 我们的数组是:
  2. [[3 7 5]
  3. [8 4 3]
  4. [2 4 9]]
  5.  
  6. 调用 ptp() 函数:
  7. 7
  8.  
  9. 沿轴 1 调用 ptp() 函数:
  10. [4 5 7]
  11.  
  12. 沿轴 0 调用 ptp() 函数:
  13. [6 3 6]

numpy.percentile()

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

  1. numpy.percentile(a, q, axis)

参数说明:

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

首先明确百分位数:

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

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

这里的 p = 70。

实例

import numpy as np a = np.array([[10, 7, 4], [3, 2, 1]]) print ('我们的数组是:') print (a) print ('调用 percentile() 函数:') # 50% 的分位数,就是 a 里排序之后的中位数 print (np.percentile(a, 50)) # axis 为 0,在纵列上求 print (np.percentile(a, 50, axis=0)) # axis 为 1,在横行上求 print (np.percentile(a, 50, axis=1)) # 保持维度不变 print (np.percentile(a, 50, axis=1, keepdims=True))

输出结果为:

  1. 我们的数组是:
  2. [[10 7 4]
  3. [ 3 2 1]]
  4. 调用 percentile() 函数:
  5. 3.5
  6. [6.5 4.5 2.5]
  7. [7. 2.]
  8. [[7.]
  9. [2.]]

numpy.median()

numpy.median() 函数用于计算数组 a 中元素的中位数(中值)

实例

import numpy as np a = np.array([[30,65,70],[80,95,10],[50,90,60]]) print ('我们的数组是:') print (a) print ('\n') print ('调用 median() 函数:') print (np.median(a)) print ('\n') print ('沿轴 0 调用 median() 函数:') print (np.median(a, axis = 0)) print ('\n') print ('沿轴 1 调用 median() 函数:') print (np.median(a, axis = 1))

输出结果为:

  1. 我们的数组是:
  2. [[30 65 70]
  3. [80 95 10]
  4. [50 90 60]]
  5.  
  6. 调用 median() 函数:
  7. 65.0
  8.  
  9. 沿轴 0 调用 median() 函数:
  10. [50. 90. 60.]
  11.  
  12. 沿轴 1 调用 median() 函数:
  13. [65. 80. 60.]

numpy.mean()

numpy.mean() 函数返回数组中元素的算术平均值。 如果提供了轴,则沿其计算。

算术平均值是沿轴的元素的总和除以元素的数量。

实例

import numpy as np a = np.array([[1,2,3],[3,4,5],[4,5,6]]) print ('我们的数组是:') print (a) print ('\n') print ('调用 mean() 函数:') print (np.mean(a)) print ('\n') print ('沿轴 0 调用 mean() 函数:') print (np.mean(a, axis = 0)) print ('\n') print ('沿轴 1 调用 mean() 函数:') print (np.mean(a, axis = 1))

输出结果为:

  1. 我们的数组是:
  2. [[1 2 3]
  3. [3 4 5]
  4. [4 5 6]]
  5.  
  6. 调用 mean() 函数:
  7. 3.6666666666666665
  8.  
  9. 沿轴 0 调用 mean() 函数:
  10. [2.66666667 3.66666667 4.66666667]
  11.  
  12. 沿轴 1 调用 mean() 函数:
  13. [2. 4. 5.]

numpy.average()

numpy.average() 函数根据在另一个数组中给出的各自的权重计算数组中元素的加权平均值。

该函数可以接受一个轴参数。 如果没有指定轴,则数组会被展开。

加权平均值即将各数值乘以相应的权数,然后加总求和得到总体值,再除以总的单位数。

考虑数组[1,2,3,4]和相应的权重[4,3,2,1],通过将相应元素的乘积相加,并将和除以权重的和,来计算加权平均值。

  1. 加权平均值 = (1*4+2*3+3*2+4*1)/(4+3+2+1)

实例

import numpy as np a = np.array([1,2,3,4]) print ('我们的数组是:') print (a) print ('\n') print ('调用 average() 函数:') print (np.average(a)) print ('\n') # 不指定权重时相当于 mean 函数 wts = np.array([4,3,2,1]) print ('再次调用 average() 函数:') print (np.average(a,weights = wts)) print ('\n') # 如果 returned 参数设为 true,则返回权重的和 print ('权重的和:') print (np.average([1,2,3, 4],weights = [4,3,2,1], returned = True))

输出结果为:

  1. 我们的数组是:
  2. [1 2 3 4]
  3.  
  4. 调用 average() 函数:
  5. 2.5
  6.  
  7. 再次调用 average() 函数:
  8. 2.0
  9.  
  10. 权重的和:
  11. (2.0, 10.0)

在多维数组中,可以指定用于计算的轴。

实例

import numpy as np a = np.arange(6).reshape(3,2) print ('我们的数组是:') print (a) print ('\n') print ('修改后的数组:') wt = np.array([3,5]) print (np.average(a, axis = 1, weights = wt)) print ('\n') print ('修改后的数组:') print (np.average(a, axis = 1, weights = wt, returned = True))

输出结果为:

  1. 我们的数组是:
  2. [[0 1]
  3. [2 3]
  4. [4 5]]
  5.  
  6. 修改后的数组:
  7. [0.625 2.625 4.625]
  8.  
  9. 修改后的数组:
  10. (array([0.625, 2.625, 4.625]), array([8., 8., 8.]))

标准差

标准差是一组数据平均值分散程度的一种度量。

标准差是方差的算术平方根。

标准差公式如下:

  1. std = sqrt(mean((x - x.mean())**2))

如果数组是 [1,2,3,4],则其平均值为 2.5。 因此,差的平方是 [2.25,0.25,0.25,2.25],并且其平均值的平方根除以 4,即 sqrt(5/4) ,结果为 1.1180339887498949。

实例

import numpy as np print (np.std([1,2,3,4]))

输出结果为:

  1. 1.1180339887498949

方差

统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数,即 mean((x - x.mean())** 2)。

换句话说,标准差是方差的平方根。

实例

import numpy as np print (np.var([1,2,3,4]))

输出结果为:

  1. 1.25

NumPy 统计函数

NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等。 函数说明如下:

numpy.amin() 和 numpy.amax()

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

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

实例

importnumpyasnpa = 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('再次调用 amin() 函数:')print(np.amin(a,0))print('\n')print('调用 amax() 函数:')print(np.amax(a))print('\n')print('再次调用 amax() 函数:')print(np.amax(a, axis = 0))

输出结果为:

  1. 我们的数组是:[[375][843][249]]调用 amin()函数:[332]再次调用 amin()函数:[243]调用 amax()函数:9再次调用 amax()函数:[879]

numpy.ptp()

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

实例

importnumpyasnpa = 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))

输出结果为:

  1. 我们的数组是:[[375][843][249]]调用 ptp()函数:7沿轴1调用 ptp()函数:[457]沿轴0调用 ptp()函数:[636]

numpy.percentile()

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

  1. numpy.percentile(a, q, axis)

参数说明:

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

首先明确百分位数:

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

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

这里的 p = 70。

实例

importnumpyasnpa = np.array([[10, 7, 4], [3, 2, 1]])print('我们的数组是:')print(a)print('调用 percentile() 函数:')# 50% 的分位数,就是 a 里排序之后的中位数print(np.percentile(a, 50))# axis 为 0,在纵列上求print(np.percentile(a, 50, axis=0))# axis 为 1,在横行上求print(np.percentile(a, 50, axis=1))# 保持维度不变print(np.percentile(a, 50, axis=1, keepdims=True))

输出结果为:

  1. 我们的数组是:[[1074][321]]调用 percentile()函数:3.5[6.54.52.5][7.2.][[7.][2.]]

numpy.median()

numpy.median() 函数用于计算数组 a 中元素的中位数(中值)

实例

importnumpyasnpa = np.array([[30,65,70],[80,95,10],[50,90,60]])print('我们的数组是:')print(a)print('\n')print('调用 median() 函数:')print(np.median(a))print('\n')print('沿轴 0 调用 median() 函数:')print(np.median(a, axis = 0))print('\n')print('沿轴 1 调用 median() 函数:')print(np.median(a, axis = 1))

输出结果为:

  1. 我们的数组是:[[306570][809510][509060]]调用 median()函数:65.0沿轴0调用 median()函数:[50.90.60.]沿轴1调用 median()函数:[65.80.60.]

numpy.mean()

numpy.mean() 函数返回数组中元素的算术平均值。 如果提供了轴,则沿其计算。

算术平均值是沿轴的元素的总和除以元素的数量。

实例

importnumpyasnpa = np.array([[1,2,3],[3,4,5],[4,5,6]])print('我们的数组是:')print(a)print('\n')print('调用 mean() 函数:')print(np.mean(a))print('\n')print('沿轴 0 调用 mean() 函数:')print(np.mean(a, axis = 0))print('\n')print('沿轴 1 调用 mean() 函数:')print(np.mean(a, axis = 1))

输出结果为:

  1. 我们的数组是:[[123][345][456]]调用 mean()函数:3.6666666666666665沿轴0调用 mean()函数:[2.666666673.666666674.66666667]沿轴1调用 mean()函数:[2.4.5.]

numpy.average()

numpy.average() 函数根据在另一个数组中给出的各自的权重计算数组中元素的加权平均值。

该函数可以接受一个轴参数。 如果没有指定轴,则数组会被展开。

加权平均值即将各数值乘以相应的权数,然后加总求和得到总体值,再除以总的单位数。

考虑数组[1,2,3,4]和相应的权重[4,3,2,1],通过将相应元素的乘积相加,并将和除以权重的和,来计算加权平均值。

  1. 加权平均值=(1*4+2*3+3*2+4*1)/(4+3+2+1)

实例

importnumpyasnpa = np.array([1,2,3,4])print('我们的数组是:')print(a)print('\n')print('调用 average() 函数:')print(np.average(a))print('\n')# 不指定权重时相当于 mean 函数wts = np.array([4,3,2,1])print('再次调用 average() 函数:')print(np.average(a,weights = wts))print('\n')# 如果 returned 参数设为 true,则返回权重的和 print('权重的和:')print(np.average([1,2,3, 4],weights = [4,3,2,1], returned = True))

输出结果为:

  1. 我们的数组是:[1234]调用 average()函数:2.5再次调用 average()函数:2.0权重的和:(2.0,10.0)

在多维数组中,可以指定用于计算的轴。

实例

importnumpyasnpa = np.arange(6).reshape(3,2)print('我们的数组是:')print(a)print('\n')print('修改后的数组:')wt = np.array([3,5])print(np.average(a, axis = 1, weights = wt))print('\n')print('修改后的数组:')print(np.average(a, axis = 1, weights = wt, returned = True))

输出结果为:

  1. 我们的数组是:[[01][23][45]]修改后的数组:[0.6252.6254.625]修改后的数组:(array([0.625,2.625,4.625]), array([8.,8.,8.]))

标准差

标准差是一组数据平均值分散程度的一种度量。

标准差是方差的算术平方根。

标准差公式如下:

  1. std = sqrt(mean((x - x.mean())**2))

如果数组是 [1,2,3,4],则其平均值为 2.5。 因此,差的平方是 [2.25,0.25,0.25,2.25],并且其平均值的平方根除以 4,即 sqrt(5/4) ,结果为 1.1180339887498949。

实例

importnumpyasnpprint(np.std([1,2,3,4]))

输出结果为:

  1. 1.1180339887498949

方差

统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数,即 mean((x - x.mean())** 2)。

换句话说,标准差是方差的平方根。

实例

importnumpyasnpprint(np.var([1,2,3,4]))

输出结果为:

  1. 1.25

NumPy 统计函数的更多相关文章

  1. NumPy统计函数

    NumPy - 统计函数 NumPy 有很多有用的统计函数,用于从数组中给定的元素中查找最小,最大,百分标准差和方差等. 函数说明如下: numpy.amin() 和 numpy.amax() 这些函 ...

  2. 14、numpy——统计函数

    NumPy 统计函数 NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等. 函数说明如下:(沿哪条轴执行,就是是最后结果的形式) 1.numpy.amin() 和 ...

  3. NumPy——统计函数

    引入模块import numpy as np 1.numpy.sum(a, axis=None)/a.sum(axis=None) 根据给定轴axis计算数组a相关元素之和,axis整数或元组,不指定 ...

  4. Lesson17——NumPy 统计函数

    NumPy 教程目录 1 NumPy 统计函数 NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等. 函数说明如下 1.1 统计 method descripti ...

  5. 吴裕雄--天生自然Numpy库学习笔记:NumPy 统计函数

    NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等. numpy.amin() 用于计算数组中的元素沿指定轴的最小值. numpy.amax() 用于计算数组中的 ...

  6. 数据分析 大数据之路 四 numpy 2

    NumPy 数学函数 NumPy 提供了标准的三角函数:sin().cos().tan(import numpy as np a = np.array([0,30,45,60,90])print (' ...

  7. numpy学习笔记(三)

    (1)numpy的位操作 序号         操作及描述 1.      bitwise_and 对数组元素执行位与操作 2.      bitwise_or 对数组元素执行位或操作 3.      ...

  8. NumPy教程目录

    NumPy Ndarray对象 NumPy数组属性 NumPy数据类型 NumPy数组创建例程 NumPy来自现有数据的数组 NumPy来自数值范围的数组 NumPy切片和索引 NumPy - 高级索 ...

  9. Python之Numpy详细教程

    NumPy - 简介 NumPy 是一个 Python 包. 它代表 “Numeric Python”. 它是一个由多维数组对象和用于处理数组的例程集合组成的库. Numeric,即 NumPy 的前 ...

随机推荐

  1. 5. Tomcat窗口标题修改

    具体修改方法如下: 进入tomcat的bin目录,打开catalina.bat .找到下面的内容: if not "%OS%" == "Windows_NT" ...

  2. hadoop-eclipse插件编译及windows下运行wordcount项目

    参考文章:http://www.360doc.com/content/16/0227/18/10529016_537828949.shtml, 配置修改:http://blog.csdn.net/lo ...

  3. delphi RTTI 四 获取类属性列表

    delphi RTTI 四 获取类属性列表 GetPropList(btn1.ClassInfo, tkAny, PropList) PropCount := GetTypeData(btn1.Cla ...

  4. JVM的 GC机制和内存管理

    GC机制:java垃圾回收机制,垃圾收集器线程(Garbage Collection Thread)在 JVM 处于空闲循环式,会自动回收无用的内存块. 垃圾收集算法:1.引用计数  2.根搜索  3 ...

  5. python-玉米(小米)商城作业

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. windows下面的java项目打成jar放到XShell终端上面进行远程调试

    前言: java项目打成jar放到linux上面运行,但是linux上面没有eclipse不能进行debug,所以要在windows的eclipse中进行远程调试. 需要注意的是!!!-->在e ...

  7. tips___代码规范

    函数变量尽可能置于最小作用域内,并在变量声明时进行初始化 变量声明的位置最好离第一次使用的位置越近越好:应使用初始化的方式代替声明再赋值. int x=0; rather than  int x; x ...

  8. 实现一个简单的shell

    使用已学习的各种C函数实现一个简单的交互式Shell,要求:1.给出提示符,让用户输入一行命令,识别程序名和参数并调用适当的exec函数执行程序,待执行完成后再次给出提示符.2.该程序可识别和处理以下 ...

  9. Haskell语言学习笔记(79)lambda演算

    lambda演算 根据维基百科,lambda演算(英语:lambda calculus,λ-calculus)是一套从数学逻辑中发展,以变量绑定和替换的规则,来研究函数如何抽象化定义.函数如何被应用以 ...

  10. [ 测试思维 ] 启发式测试策略模型(HTSM)

    什么是HTSM 启发式测试策略模型(Heuristic Test Strategy Model,简称HTSM)是测试专家James Bach提出的一组帮助测试设计的指南(Guide line).HTS ...