NumPy 教程第 16 章:统计函数

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

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

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

示例:

In [1]: import numpy as np

In [2]: num = np.array([[3,7,5],[8,4,3],[2,9]])

In [3]: num
Out[3]:
array([[3,9]])

In [4]: np.amin(num,1)
Out[4]: array([3,3,2])

In [5]: np.amin(num,0)
Out[5]: array([2,3])

In [6]: np.amin(num)
Out[6]: 2

In [7]: np.amax(num)
Out[7]: 9

In [8]: np.amax(num,axis=0)
Out[8]: array([8,9])

numpy.ptp() 函数

计算数组中元素最大值与最小值的差(最大值 - 最小值)

In [1]: import numpy as np

In [2]: num = np.array([[3,9]])

In [4]: np.ptp(num)
Out[4]: 7

In [5]: np.ptp(num,axis=1)
Out[5]: array([4,5,7])

In [6]: np.ptp(num,axis=0)
Out[6]: array([6,6])

numpy.percentile() 函数

百分位数是统计中使用的度量,表示小于这个值的观察值的百分比,

numpy.percentile(a,q,axis)

参数说明:

  • a: 输入数组

  • q: 要计算的百分位数,在 0 ~ 100 之间

  • axis: 沿着它计算百分位数的轴

首先明确百分位数:

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

In [1]: import numpy as np

In [2]: num = np.array([[10,4],[3,2,1]])

In [3]: num
Out[3]:
array([[10,[ 3,1]])

In [4]: np.percentile(num,50)
Out[4]: 3.5

In [5]: np.percentile(num,50,axis=0)
Out[5]: array([6.5,4.5,2.5])

In [6]: np.percentile(num,axis=1)
Out[6]: array([7.,2.])

In [7]: np.percentile(num,axis=1,keepdims=True)
Out[7]:
array([[7.],[2.]])

numpy.median() 函数

用于计算数组 a 中元素的中位数(中值)

In [1]: import numpy as np

In [2]: num = np.array([[30,65,70],[80,95,10],[50,90,60]])

In [3]: num
Out[3]:
array([[30,60]])

In [4]: np.median(num)
Out[4]: 65.0

In [5]: np.median(num,axis=0)
Out[5]: array([50.,90.,60.])

In [6]: np.median(num,axis=1)
Out[6]: array([65.,80.,60.])

numpy.mean() 函数

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

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

In [1]: import numpy as np

In [2]: num = np.array([[1,[4,6]])

In [3]: num
Out[3]:
array([[1,6]])

In [4]: np.mean(num)
Out[4]: 3.6666666666666665

In [5]: np.mean(num,axis=0)
Out[5]: array([2.66666667,3.66666667,4.66666667])

In [6]: np.mean(num,axis=1)
Out[6]: array([2.,4.,5.])

numpy.average() 函数

根据在另一个数组中给出的各自的权重计算数组中元素的加权平均值

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

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

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

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

示例:

In [1]: import numpy as np

In [2]: num = np.array([1,4])

In [3]: num
Out[3]: array([1,4])

In [4]: np.average(num)
Out[4]: 2.5

In [5]: np.average(num,weights=np.array([4,1]))
Out[5]: 2.0

In [6]: np.average([1,weights=[4,1],returned=True)
Out[6]: (2.0,10.0)

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

In [1]: import numpy as np

In [2]: num = np.arange(6).reshape(3,2)

In [3]: num
Out[3]:
array([[0,5]])

In [4]: np.average(num,weights=np.array([3,5]))
Out[4]: array([0.625,2.625,4.625])

In [5]: np.average(num,5]),returned=True)
Out[5]: (array([0.625,4.625]),array([8.,8.,8.]))

标准差

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

标准差是方差的算术平方根,标准差公式如下:

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

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

In [1]: import numpy as np

In [2]: np.std([1,4])
Out[2]: 1.118033988749895

方差

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

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

In [3]: np.var([1,4])
Out[3]: 1.25

原文地址:https://blog.csdn.net/yilovexing

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


内存块风格 ndarray到底跟原生python列表有什么不同呢,请看一张图: 从图中我们可以看出ndarray在存储数据的时候,数据与数据的地址都是连续的,这样就给使得批量操作数组元素时速度更快。
6 替换array中的元素,并赋值给新的array 例如: 输入arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 输出out为array([ 0, -1,
1 如何查看np版本 import numpy as np print(np.__version__) 2 如何创建一维数据array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
11 找到两个array中的通用项,并保存在新的array中 例如:输入a = np.array([1,2,3,2,3,4,3,4,5,6]),b = np.array([7,2,10,2,7,4,9
待续。。。
NumPy - 简介NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的。 也开发了另一个包 Numarray ,它拥有一些额外的功能。 2005年,Travis Oliphant 通过将 Numarray 的功能集成到 Numer...
NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型。 它描述相同类型的元素集合。 可以使用基于零的索引访问集合中的项目ndarray 中的每个元素在内存中使用相同大小的块。 ndarray 中的每个元素是数据类型对象的对象(称为 dtype)ndarray 原型:numpy.array(object, dtype=None, copy=True, order=None...
bool_存储为一个字节的布尔值(真或假)int_默认整数, 相当于 C 的long, 通常为int32或int64intc相当于 C 的int, 通常为int32或int64intp用于索引的整数, 相当于 C 的size_t, 通常为int32或int64int8字节(-128 ~ 127)int16 16 位整数(-32768 ~ 32767)int3...
调整数组的数组大小和维度ndarray.shape 返回一个包含数组维度的元组,也可以用于调整数组大小和维度In [1]: import numpy as npIn [2]: num = np.array([[1,2,3],[4,5,6]])In [3]: numOut[3]:array([[1, 2, 3], [4, 5, 6]])In [4]: num.sha...
numpy.empty 创建指定形状和dtype的未初始化数组numpy.empty(shape, dtype = float, order = 'C')Shape 空数组的形状,整数或整数元组Dtype 所需的输出数组类型,可选Order 'C’为按行的 C 风格数组,'F’为按列的 Fortran 风格数组下面的代码展示空数组的例子,因为它们未初始化,所以数组元素默...
numpy.asarray 此函数类似于numpy.array,它有较少的参数numpy.asarray(a, dtype = None, order = None)a 任意形式的输入参数,比如列表、列表的元组、元组、元组的元组、元组的列表dtype 通常,输入数据的类型会应用到返回的 ndarrayorder ‘C’ 为按行的 C 风格数组,‘F’ 为按列的 Fortran...
numpy.arange 方法创建数值范围并返回 ndarray 对象numpy.arange(start, stop, step, dtype)start 起始值,默认为 0stop 终止值(不包含)step 步长,默认为 1dtype 返回 ndarray 的数据类型,如果没有提供,则会使用输入数据的类型arange 方法语法:In [1]: import ...
ndarray 对象中的元素遵循基于零的索引。 有三种可用的索引方法类型: 字段访问,基本切片和高级索引ndarray 对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样ndarray 数组可以基于 0 - n 的下标进行索引,切片对象可以通过内置的 slice 函数,并设置 start, stop 及 step 参数进行,从原数组中切割出一个新数组In...
整数数组索引NumPy 比一般的 Python 序列提供更多的索引方式。除了之前看到的用整数和切片的索引外,数组可以由整数数组索引、布尔索引及花式索引实例获取数组中(0,0),(1,1)和(2,0)位置处的元素In [1]: import numpy as npIn [2]: num = np.array([[1, 2], [3, 4], [5, 6]])In [3]: n...
广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行如果两个数组 a 和 b 形状相同,即满足 a.shape == b.shape,那么 a*b 的结果就是 a 与 b 数组对应位相乘。这要求维数相同,且各维度的长度相同In [1]: import numpy as npIn [2]: a = np.arra...
NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式,迭代器最基本的任务的可以完成对数组元素的访问使用 arange() 函数创建一个 2X3 数组,并使用 nditer 对它进行迭代In [1]: import numpy as npIn [2]: num = np.arange(6).reshape(2,3)In [3]: numOut[...
Numpy 中包含了一些函数用于处理数组,大概可分为以下几类:修改数组形状翻转数组修改数组维度连接数组分割数组数组元素的添加与删除修改数组形状reshape 不改变数据的条件下修改形状flat 数组元素迭代器flatten 返回一份数组拷贝,对拷贝所做的修改不会影响原始数组ravel 返回展开数组numpy.reshape 函...
NumPy bitwise_ 开头的函数是位运算函数NumPy 位运算包括以下几个函数:bitwise_and 对数组元素执行位与操作bitwise_or 对数组元素执行位或操作invert 按位取反left_shift 向左移动二进制表示的位right_shift 向右移动二进制表示的位也可以用 Python 自身的位运算符进行操作:&:按位与...
以下函数用于对 dtype 为 numpy.string_ 或 numpy.unicode_ 的数组执行向量化字符串操作它们基于 Python 内置库中的标准字符串函数,这些函数在字符数组类(numpy.char)中定义add() 对两个数组的逐个字符串元素进行连接multiply() 返回按元素多重连接后的字符串center() 居中字符串capitalize() 将字...
NumPy 包含大量的各种数学运算的函数,包括三角函数,算术运算的函数,复数处理函数等三角函数NumPy 提供了标准的三角函数:sin()、cos()、tan()In [1]: import numpy as npIn [2]: data = np.array([0,30,45,60,90])In [3]: np.sin(data * np.pi / 180)Out[3]: arr...