Q2.Numpy_常用统计函数

1.求最大值和最小值的函数:

最大值:amax(),nanmax(),

最小值:amin(),nanmin()

  • amax()和amin()函数用于返回一个数组的最大值和最小值或者是沿轴返回数组的最大值和最小值
  • nanmax()和nanmin()函数用于返回忽略任何NaN的数组的最大值和最小值或者是沿轴返回忽略任何NaN的数组的最大值和最小值。

如果数组全是NaN切片,将会出现警告并返回NaN切片:
NaN:not a number

格式:
numpy.amax(a,[axis=None[,out=None[,keepdims=False]]])

参数解读:

  • a:输入数据
  • axis:指定沿着某个轴来计算最大值,axis=0表示按列,axis=1表示按行,默认值None表示对整个数组
  • out:替代输出数组,用于放置结果,默认值为None
  • keepdims:默认值为False,输出行维度为1,如果设置为True,则输出列维度为1
  • 该函数除了a参数外,其余参数为可选项
import numpy as np
arr=np.array([[0,3,1,5],[2,4,6,1],[2,8,9,2]])
print('原数组为:\n',arr)
原数组为:
 [[0 3 1 5]
 [2 4 6 1]
 [2 8 9 2]]
max1=np.amax(arr)
print(max1)
max2=np.amax(arr,axis=0)
print(max2)
[2 8 9 5]
max3=np.amax(arr,axis=1)
max4=np.max(arr,axis=1)
print(max3)
print(max4)
[5 6 9]
[5 6 9]
arr_a=np.arange(5,dtype=float)
print('定义浮点型数组:\n',arr_a)
定义浮点型数组:
 [0. 1. 2. 3. 4.]
arr_a[3]=np.nan
a=np.amin(arr_a)
print('数组的amin为:',a)
b=np.nanmin(arr_a)
print('数组的nanmin为:',b)
数组的amin为: nan
数组的nanmin为: 0.0

2.求沿轴方向的取值范围

使用ptp()函数能返回沿某轴(axis)方向上的最大值与最小值的差值,即maxium-minimum的值形成的数组

格式:numpy.ptp(a,[axis=None[,out=None]])

参数解读:

  • a:输入数据
  • axis:指定沿着某个轴来计算差值,axis=0表示按列,axis=1表示按行,默认值None表示对整个数组
  • out:替代输出数组,用于放置结果,默认为None
  • 该函数除了a参数外,其余参数为可选项
arr_p=np.arange(12).reshape((3,4))
print(arr_p)

c=np.ptp(arr_p,axis=0)

print('差值形成的数组为:\n',c)

d=np.ptp(arr_p,axis=1)

print('差值形成的数组为:\n',d)

[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
差值形成的数组为:
 [8 8 8 8]
差值形成的数组为:
 [3 3 3]

3.百分数(不一定要是数组中的元素)

使用percentile()和nanpercentile()函数可以沿某轴(axis)方向计算数组中第q数值的百分数

格式:percentile(a,q[,axis,out,…])

参数解读:

  • a:数组或可以转化成数组的对象
  • q[0,100]范围的浮点数
  • axis:指定沿着某个轴来计算百分位数,axis=0表示按列,axis=1表示按行,默认值None表示对整个数组
  • 该函数除了a,q参数外,其余参数为可选项

nanpercentile()函数和percentile()格式相同,只是在计算百分位数时会忽略数组中的nan值


arr_n=np.arange(12).reshape(3,4)
print('示例数组为:\n',arr_n)
示例数组为:
 [[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
a1=np.percentile(arr_n,50)
b1=np.percentile(arr_n,50,axis=0)
c1=np.percentile(arr_n,60,axis=1)
print('\n',a1,'\n',b1,'\n',c1)
 5.5
 [4. 5. 6. 7.]
 [1.8 5.8 9.8]

4.中位数(数值一定是数组中的元素)

median()和nanmedian()函数可以沿某轴(axis)方向计算数组中的中位数

格式:numpy.median(a,[,axis,out,overwrite_input,keepdims])

参数解读:

  • a:数组或可以转化成数组的对象
  • axis:指定沿着某个轴来计算中位数,axis=0表示按列,axis=1表示按行,默认值None表示对整个数组
  • 该函数除了a参数外,其余参数为可选项

nanmedian()函数是计算数组a在沿某轴(axis)方向上忽略nan值的中位数

d1=np.median(arr_n)
e1=np.median(arr_n,axis=0)
f1=np.median(arr_n,axis=1)
print('\n',d1,'\n',e1,'\n',f1)
 5.5
 [4. 5. 6. 7.]
 [1.5 5.5 9.5]

5.求和与加权平均值

sum()函数和average()函数

格式:sum(a[,axis=None])
average(a[,axis=None,weights=None])

参数解读:

  • weights:表示权重值
  • axis:指定沿着某个轴来计算和或者平均值,axis=0表示按列,axis=1表示按行,默认值None表示对整个数组
  • 这两个函数函数除了a参数外,其余参数为可选项
print('原数组为:\n',arr_n)
a2=np.sum(arr_n)
b2=np.sum(arr_n,axis=0)
c2=np.sum(arr_n,axis=1)
print(' 数组和为:',a2,'\n',
      '按列输出和组成的数组为:',b2,'\n',
      '按行输出和组成的数组为:',c2)
原数组为:
 [[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
 数组和为: 66
 按列输出和组成的数组为: [12 15 18 21]
 按行输出和组成的数组为: [ 6 22 38]
print('原数组为:\n',arr_n)
a3=np.average(arr_n)
b3=np.average(arr_n,axis=0)
c3=np.average(arr_n,axis=1)
print(' 加权平均数为:',a3,'\n',
      '按列输出加权平均数组成的数组为:',b3,'\n',
      '按行输出加权平均数组成的数组为:',c3)
原数组为:
 [[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
 加权平均数为: 5.5
 按列输出加权平均数组成的数组为: [4. 5. 6. 7.]
 按行输出加权平均数组成的数组为: [1.5 5.5 9.5]

6.算术平均数

算术平均数是搜有元素的总和除以元素的数量。mean()和nanmean()函数可以计算数组或者轴方向的算术平均数

格式:mean(a[,axis=None])

参数解读:

  • a:输入数组
  • axis:指定沿着某个轴来计算算术平均数,axis=0表示按列,axis=1表示按行,默认值None表示对整个数组
  • 这个函数除了a参数外,其余参数为可选项
print('原数组为:\n',arr_n)
a4=np.mean(arr_n)
b4=np.mean(arr_n,axis=0)
c4=np.mean(arr_n,axis=1)
print(' 数组平均数为:',a4,'\n',
      '按列输出平均数组成的数组为:',b4,'\n',
      '按行输出平均数组成的数组为:',c4)
原数组为:
 [[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
 数组平均数为: 5.5
 按列输出平均数组成的数组为: [4. 5. 6. 7.]
 按行输出平均数组成的数组为: [1.5 5.5 9.5]

7.标准差

也叫标准偏差,std()和nanstd()函数计算标准差

格式:numpu.std(a[,axis=None])

参数解读:

  • a:输入数组
  • axis:指定沿着某个轴来计算标准差,axis=0表示按列,axis=1表示按行,默认值None表示对整个数组
  • std()函数除了a参数外,其余参数为可选项

nanstd()函数是计算标准差时忽略nan值

a5=np.std(arr_n)
b5=np.std(arr_n,axis=0)
c5=np.std(arr_n,axis=1)
print(' 数组标准差为:',a5,'\n',
      '按列输出标准差组成的数组为:',b5,'\n',
      '按行输出标准差组成的数组为:',c5)
 数组标准差为: 3.452052529534663
 按列输出标准差组成的数组为: [3.26598632 3.26598632 3.26598632 3.26598632]
 按行输出标准差组成的数组为: [1.11803399 1.11803399 1.11803399]

8.方差:var()和nanvar()函数

方差是元素与元素的平均数差的平方的平均数mean(abs(x-x.mean())**2)

格式:numpy.var(a[,axis=None,dtype=None])

参数解读:

  • a:输入数组
  • axis:指定沿着某个轴来计算方差,axis=0表示按列,axis=1表示按行,默认值None表示对整个数组
  • dtype:数据类型
  • var()函数除了a参数外,其余参数为可选项

nanvar()函数是计算方差时忽略nan值

a6=np.var(arr_n)
b6=np.var(arr_n,axis=0)
c6=np.var(arr_n,axis=1)
print(' 数组方差为:',a6,'\n',
      '按列输出方差组成的数组为:',b6,'\n',
      '按行输出方差组成的数组为:',c6)

 数组方差为: 11.916666666666666
 按列输出方差组成的数组为: [10.66666667 10.66666667 10.66666667 10.66666667]
 按行输出方差组成的数组为: [1.25 1.25 1.25]

Original: https://blog.csdn.net/weixin_45702895/article/details/124217005
Author: 驾驭精神领域
Title: Q2.Numpy_常用统计函数

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/762008/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球