14、numpy——统计函数

NumPy 统计函数

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

1、numpy.amin() 和 numpy.amax()

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

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

 1 import numpy as np
 2 a = np.array([[3, 7, 5], [8, 4, 3], [2, 4, 9]])
 3 print(‘我们的数组是:‘)
 4 print(a)
 5 print(‘调用 amin() 函数:‘)
 6 print(np.amin(a, 1))
 7 print(‘再次调用 amin() 函数:‘)
 8 print(np.amin(a, 0))
 9 print(‘调用 amax() 函数:‘)
10 print(np.amax(a))
11 print(‘再次调用 amax() 函数:‘)
12 print(np.amax(a, axis=0))

执行结果:

我们的数组是:
[[3 7 5]
 [8 4 3]
 [2 4 9]]
调用 amin() 函数:
[3 3 2]
再次调用 amin() 函数:
[2 4 3]
调用 amax() 函数:
9
再次调用 amax() 函数:
[8 7 9]

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(‘调用 ptp() 函数:‘)
print(np.ptp(a))
print(‘沿轴 1 调用 ptp() 函数:‘)
print(np.ptp(a, axis=1))
print(‘沿轴 0 调用 ptp() 函数:‘)
print(np.ptp(a, axis=0))

执行结果:

我们的数组是:
[[3 7 5]
 [8 4 3]
 [2 4 9]]

调用 ptp() 函数:
7

沿轴 1 调用 ptp() 函数:
[4 5 7]

沿轴 0 调用 ptp() 函数:
[6 3 6]

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。

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

执行结果:

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

4、numpy.median()

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

 1 import numpy as np
 2 a = np.array([[30, 65, 70], [80, 95, 10], [50, 90, 60]])
 3 print(‘我们的数组是:‘)
 4 print(a)
 5 print(‘调用 median() 函数:‘)
 6 print(np.median(a))
 7 print(‘沿轴 0 调用 median() 函数:‘)
 8 print(np.median(a, axis=0))
 9 print(‘沿轴 1 调用 median() 函数:‘)
10 print(np.median(a, axis=1))

执行结果:

我们的数组是:
[[30 65 70]
 [80 95 10]
 [50 90 60]]
调用 median() 函数:
65.0
沿轴 0 调用 median() 函数:
[50. 90. 60.]
沿轴 1 调用 median() 函数:
[65. 80. 60.]

5、numpy.mean()

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

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

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

执行结果:

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

调用 mean() 函数:
3.6666666666666665

沿轴 0 调用 mean() 函数:
[2.66666667 3.66666667 4.66666667]

沿轴 1 调用 mean() 函数:
[2. 4. 5.]

6、numpy.average()

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

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

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

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

加权平均值 = (1*4+2*3+3*2+4*1)/(4+3+2+1)
 1 import numpy as np
 2 a = np.array([1, 2, 3, 4])
 3 print(‘我们的数组是:‘)
 4 print(a)
 5 print(‘调用 average() 函数:‘)
 6 print(np.average(a))
 7 # 不指定权重时相当于 mean 函数
 8 wts = np.array([4, 3, 2, 1])
 9 print(‘再次调用 average() 函数:‘)
10 print(np.average(a, weights=wts))
11 # 如果 returned 参数设为 true,则返回权重的和
12 print(‘权重的和:‘)
13 print(np.average([1, 2, 3, 4], weights=[4, 3, 2, 1], returned=True))

执行结果:

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

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

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

执行结果:

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

7、标准差

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

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

标准差公式如下:

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。

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

执行结果:

1.1180339887498949

8、方差

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

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

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

执行结果:

1.25

原文地址:https://www.cnblogs.com/weststar/p/11589619.html

时间: 2024-08-10 12:05:39

14、numpy——统计函数的相关文章

numpy 统计函数与随机数

一.统计函数 可以通过以下的基本统计方法对整个数组或者数组的某个轴的数据进行统计: 方法 说明 sum 求和 mean 算术平均数 std 标准差 var 方差 min 最小值 max 最大值 argmax 最大元素在指定轴上的索引 argmin 最小元素在指定轴上的索引 cumsum 累积的和 cumprod 累积的乘积 示例: >>> a = np.arange(12).reshape(3,4) >>> a array([[ 0, 1, 2, 3], [ 4, 5,

Python之Numpy详细教程

NumPy - 简介 NumPy 是一个 Python 包. 它代表 “Numeric Python”. 它是一个由多维数组对象和用于处理数组的例程集合组成的库. Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的. 也开发了另一个包 Numarray ,它拥有一些额外的功能. 2005年,Travis Oliphant 通过将 Numarray 的功能集成到 Numeric 包中来创建 NumPy 包. 这个开源项目有很多贡献者. NumPy 操作 使用NumPy,开

Python3快速入门(十二)——NumPy

Python3快速入门(十二)--NumPy 一.NumPy简介 1.NumPy简介 NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,同时对数组运算提供了大量的数学函数库.Numpy 是一个运行速度非常快的数学库,内部解除了CPython的GIL(全局解释器锁),运行效率极好,主要用于数组计算,是大量机器学习框架的基础库,NumPy主要包括如下:(1)强大的N维数组对象 ndarray(2)广播功能函数(3)整合 C/C++/

基于cx_freeze编译PyQt4程序(numpy & scipy)

当开发完成PyQt4程序后,需要提供给他人使用,这时最好的办法是将Python程序编译成exe文件. 通常我采用cx_freeze完成这个工作,即编写setup.py文件,执行python setup.py build即可. (1) 对于一般的PyQt4程序,setup.py内容如下: 1 import sys 2 3 from cx_Freeze import setup, Executable 4 5 base = None 6 if sys.platform == 'win32': 7 b

数据分析 大数据之路 三 numpy 2

NumPy 数学函数 NumPy 提供了标准的三角函数:sin().cos().tan() numpy.around() 函数返回指定数字的四舍五入值 numpy.floor() 返回数字的下舍整数 numpy.ceil() 返回数字的上入整数 NumPy 算术函数 NumPy 算术函数包含简单的加减乘除: add(),subtract(),multiply() 和 divide() numpy.reciprocal() 函数返回参数逐元素的倒数.如 1/4 倒数为 4/1. numpy.pow

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/18

numpy库使用总结

numpy study 0x01:n维数组对象ndaarray 存放同类型元素的多维数组 0x02:numpy数据类型 numpy 的数值类型实际上是 dtype 对象的实例,并对应唯一的字符,包括 np.bool_,np.int32,np.float32,等等. 字定义结构化数据类型: import numpy as np student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')]) a = np.array([('a

高清图解:神经网络、机器学习、数据科学一网打尽

|导|读| BY:AI-Beetle 完全图解人工智能.NLP.机器学习.深度学习.大数据!这份备忘单涵盖了上述领域几乎全部的知识点,并使用信息图.脑图等多种可视化方式呈现,设计精美,实用性强.今天,我们要为大家推荐一个超实用.颜值超高的神经网络+机器学习+数据科学和Python的完全图解,文末附有高清PDF版链接,支持下载.打印,推荐大家可以做成鼠标垫.桌布,或者印成手册等随手携带,随时翻看.这是一份非常详实的备忘单,涉及具体内容包括:1.2神经网络3.神经网络基础知识4.神经网络图谱5.机器

在Ubuntu 14.04 64bit上安装numpy和matplotlib库

原文:http://blog.csdn.net/tao_627/article/details/44004541 按照这个成功安装! 机器学习是数据挖掘的一种实现形式,在学习<机器学习实战>过程中,需要python环境中安装好numpy和matplotlib库,特此将我在Ubuntu 14.04 64bit上的摸索过程总结如下: 书上的建议是: 在Debian/Ubuntu系统下安装Python, Numpy和Matplotlib的最佳方式是使用apt-get等软件包管理器. 避免源码包形式的