python统计个数的函数_NumPy常⽤的统计函数
NumPy 的统计函数可以实现对整个数组或者是沿着数组轴⽅向的统计计算,常⽤的统计函数有求最⼤值和最⼩值,求和与平均值,计算百分位数、中位数、标准差和⽅差等。
求最⼤值和最⼩值的函数
在 NumPy 中,求数组最⼤值的函数是 amax() 和 nanmax(),求数组最⼩值的函数是 amin() 和 nanmin(),其中,amax() 和 amin() 函数⽤于返回⼀个数组的最⼤值和最⼩值或者是沿轴返回数组的最⼤值和最⼩值;nanmax() 函数和 nanmin() 函数⽤于返回忽略任何 NaN 的数组的最⼤值和最⼩值或者是沿轴返回忽略任何 NaN 的数组的最⼤值和最⼩值。
如果数组是全 NaN 切⽚,将会出现运⾏警告(Runtime Warning),并为该切⽚返回 NaN。
amax() 函数的格式如下:
numpy.amax(a,[axis=None[,out=None[,keepdims=False]]])
函数中的参数说明如下:
a:输⼊数据;
axis:指定沿着某个轴来计算最⼤值,axis=0 表⽰按列,axis=1 表⽰按⾏,默认值 None 表⽰对整个数组;
out:替代输出数组,⽤于放置结果,默认值为 None;
keepdims:默认值为 False,输出⾏维度为 1,如果设置为 True,则输出列维度为 1。
amax() 函数除了 a 参数外,其余参数为可选项。⽽ amin()、nanmax()、nanmin() 与 amax() 的函数格式和参数相同。另外,也可以使⽤ max() 函数和 min() 函数求序列或数组的最⼤值和最⼩值。但是对于⼤型数组⽽⾔,使⽤ amax() 函数和 amin() 函数性能会更好。
最⼤值和最⼩值的函数的⽰例代码 example1 如下。
# -*- coding: utf-8 -*-
import numpy as np
arr = np.array([[0,3,1,5],[2,4,6,1],[2,8,9,2]])
#求arr数组的最⼤值
max1 = np.amax(arr)
#求arr数组垂直⽅向的最⼤值
max2 = np.amax(arr,axis=0)
#求arr数组⽔平⽅向的最⼤值
max3 = np.amax(arr,axis=1)
max4 = np.max(arr,axis=1)
print(max1,max2,max3,max4)
#amin函数与nanmin函数的区别
arr = np.arange(5, dtype=float)
print(arr) # [0. 1. 2. 3. 4.]
arr[3] = np.nan
a = np.amin(arr)
print(a) # ⽤amin函数输出NaN
b = np.nanmin(arr)
print(b) #⽤nanmin函数输出0.0
求沿轴⽅向的取值范围
在 NumPy 中,使⽤ ptp() 函数能返回沿某轴(axis)⽅向上的最⼤值与最⼩值的差值,即 maximum-minimum 的值形成的数组。ptp()函数的格式如下:
numpy.ptp(a,[axis=None[,out=None]])
函数中的参数说明如下:
a:输⼊数据;
axis:指定沿着某个轴来计算差值,axis=0 表⽰按列,axis=1 表⽰按⾏,默认值 None 表⽰对整个数组;
out:替代输出数组,⽤于放置结果,默认值为 None。
该函数除了 a 参数外,其余参数为可选项。
ptp() 函数的⽰例代码 example2 如下。
# -*- coding: utf-8 -*-
import numpy as np
arr = np.arange(12).reshape((3,4))
a = np.ptp(arr, axis=0)
print(a) #[8 8 8 8] 差值形成的数组
b = np.ptp(arr, axis=1)
print(b) #[3 3 3]差值形成的数组
求百分位数
在 NumPy 中,使⽤ percentile() 和 nanpercentile() 函数可以沿某轴(axis)⽅向计算数组中第 q 数值的百分位数。percentile() 函数的格式如下:
percentile(a,q[, axis, out, …])
函数中的主要参数说明如下:
a:数组或可以转化成数组的对象;
q:[0,100] 范围的浮点数;
axis:指定沿着某个轴来计算百分位数,axis=0 表⽰按列,axis=1 表⽰按⾏,默认值 None 表⽰对整个数组。
percentile() 函数除了 a、q 参数外,其余参数为可选项。percentile() 函数还可以计算多维数组的任意百分⽐分位数。所谓百分⽐分位数就是位于 q% 位置处的值,称为第 q 百分位数。但要注意,数列要递增排序后再计算。
nanpercentile() 函数格式与 percentile() 函数格式相同,只是在计算百分位数时会忽略数组中的 NaN 值。
求中位数
在 NumPy 中,利⽤ median() 和 nanmean() 函数可以沿某轴(axis)⽅向计算数组中的中位数。median() 函数格式如下:python 定义数组
函数中的主要参数说明如下:
a:数组或可以转化成数组的对象;
axis:指定沿着某个轴来计算中位数,axis=0 表⽰按列,axis=1 表⽰按⾏,默认值 None 表⽰对整个数组。
median() 函数除了 a 参数外,其余参数为可选项。median() 相当于 percentile() 函数在参数 q=50 时的值。
nanmedian() 函数是计算数组a在沿某轴(axis)⽅向上忽略 NaN 值的中位数。
求百分位数和中位数的⽰例代码 example3 如下。
# -*- coding: utf-8 -*-
import numpy as np
arr = np.arange(12).reshape((3,4))
#使⽤percentile函数求百分位数
a = np.percentile(arr,50) #相当于求中位数
b= np.percentile(arr,50, axis=0) #输出[4. 5. 6. 7.]
c = np.percentile(arr,60 , axis=0) # 输出[4.8 5.8 6.8 7.8]
print(a,b,c)
#使⽤median函数求中位数
d = np.median(arr) # 输出5.5
e = np.median(arr,axis = 0) # 输出[4. 5. 6. 7.]
f = np.median(arr,axis = 1) # 输出[1.5 5.5 9.5]
print(d,e,f)
求和与加权平均值
在 NumPy 中,sum() 函数是沿某轴(axis)⽅向计算数组中相关元素之和,函数格式如下:
sum(a[, axis=None])
average()函数是沿某轴(axis)⽅向计算数组中相关元素的加权平均值。加权平均值的数学概念是有 n 个数 X1,X2,…,Xn 的权分别是
W1,W2,…,Wn,那么,这 n 个数的加权平均值为:(X1W1+X2W2+…+XnWn)/(W1+W2+…+Wn)
当每个数对应的权重为 1 时,也就是计算平均数。average() 函数的格式如下:
average(a[, axis=None, weights=None])
函数中的主要参数说明如下:
a:输⼊数组;
axis:指定沿着某个轴来计算和或平均值,axis=0 表⽰按列,axis=1 表⽰按⾏,默认值 None 表⽰对整个数组;
weights:表⽰权重值。当权重值为⼀维数组时,其长度必须与沿指定轴⽅向的长度⼀致。另外,权重值数组也可以与 a 数组的形状相同。sum() 和 average() 函数除了 a 参数外,其余参数为可选项。
求和与加权平均值的⽰例代码 example4 如下。
# -*- coding: utf-8 -*-
import numpy as np
arr = np.arange(12).reshape((3,4))
#计算和
a = np.sum(arr)
b = np.sum(arr,axis = 0)
c = np.sum(arr,axis = 1)
print(a,b,c)
#计算权重值为1时的加权平均值
a = np.average(arr)
b = np.average(arr,axis = 0)
c = np.average(arr,axis = 1)
print(a,b,c)
算术平均数
算术平均数是所有元素的总和除以元素的数量。在 NumPy 中,mean() 和 nanmean() 函数可以计算数组或者轴⽅向的算术平均数,函数格式如下:
mean(a[, axis=None])
函数中的主要参数说明如下:
a:输⼊数组;
axis:指定沿着某个轴来计算算术平均数,axis=0 表⽰按列,axis=1 表⽰按⾏,默认值 None 表⽰对整个数组。
mean() 函数除了 a 参数外,其余参数为可选项。nanmean() 函数在计算算术平均数时如果遇到 NaN 值会忽略。
标准差
标准差也称为标准偏差,其定义是总体中各单位标准值与其平均数离差平⽅的算术平均数的平⽅根,它反映组内个体间的离散程度。在NumPy 中,计算标准差的函数有 std() 和 nanstd()。std() 函数的格式如下:
numpy.std(a[, axis=None])
函数中的主要参数说明如下:
a:输⼊数组;
axis:指定沿着某个轴来计算标准差,axis=0 表⽰按列,axis=1 表⽰按⾏,默认值 None 表⽰对整个数组。
std() 函数除了 a 参数外,其余参数为可选项。nanstd() 函数在计算标准差时如果遇到 NaN 值会忽略。
⽅差
⽅差是元素与元素的平均数差的平⽅的平均数 mean(abs(x - x.mean())**2)。在 NumPy 中,计算⽅差的函数有 var() 和 nanvar()。
var() 函数的格式如下:
numpy.var(a[, axis=None,dtype=None])
函数中的主要参数说明如下:
a:输⼊数组;
axis:指定沿着某个轴来计算⽅差,axis=0 表⽰按列,axis=1 表⽰按⾏,默认值 None 表⽰对整个数组;
dtype:数据类型。
var() 函数除了 a 参数外,其余参数都为可选项。nanvar() 函数在计算⽅差时会忽略数组中的 NaN 值。
计算算术平均数、标准差与⽅差的⽰例代码 example5 如下。
# -*- coding: utf-8 -*-
import numpy as np
arr = np.arange(12).reshape((3,4)) #计算算术平均数
a = np.mean(arr)
b = np.mean(arr,axis=0)
c = np.mean(arr,axis=1)
print(a,b,c)
#计算标准差
a = np.std(arr)
b = np.std(arr,axis=0)
c = np.std(arr,axis=1)
print(a,b,c)
#计算⽅差
a = np.var(arr)
b = np.var(arr,axis=0)
c = np.var(arr,axis=1)
print(a,b,c)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。