评论

软件测试|Python科学计算神器numpy教程(十二)

简介

NumPy是Python中用于科学计算的一个强大的库,其中包含了丰富的数学和统计函数。这些统计函数允许用户对数组进行各种统计计算,例如平均值、标准差、方差、最大值、最小值等。在本文中,我们将详细介绍NumPy中一些常用的统计函数及其用法。

统计函数示例

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

这两个函数用于计算数组沿指定轴的最小值与最大值:

  • amin() 沿指定的轴,查找数组中元素的最小值,并以数组形式返回;
  • amax() 沿指定的轴,查找数组中元素的最大值,并以数组形式返回。

对于二维数组来说,axis=1 表示沿着水平方向,axis=0 表示沿着垂直方向。如下图:

示例如下:

import numpy as np

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

print ('数组a是:')

print(a)

#amin()函数

print (np.amin(a))

#调用 amin() 函数,axis=1

print(np.amin(a,1))

#调用amax()函数

print(np.amax(a))

#再次调用amax()函数

print(np.amax(a,axis=0))

----------

输出结果如下:

我们的数组是:

[[3 7 5]

[8 4 3]

[2 4 9]]

调用amin()函数:

2

调用 amin(axis=1) 函数:

[3 3 2]

amax() 函数:

9

amax(axis=0) 函数:

[8 7 9]

  1. numpy.ptp()

numpy.ptp() 用于计算数组元素中最值之差值,也就是(最大值 - 最小值)。

示例如下:

import numpy as np

a = np.array([[2,10,20],[80,43,31],[22,43,10]])

print("原数组",a)

print("沿着axis 1:",np.ptp(a,1))

print("沿着axis 0:",np.ptp(a,0))

-------------

输出结果如下:

原数组 array:

[[ 2 10 20]

[80 43 31]

[22 43 10]]

沿着 axis 1: [18 49 33]

沿着 axis 0: [78 33 21]

  1. numpy.percentile()

百分位数,是统计学中使用的一种度量单位。该函数表示沿指定轴,计算数组中任意百分比分位数,语法格式如下:

numpy.percentile(a, q, axis)

函数 numpy.percentile() 的参数说明:

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

示例如下:

import numpy as np

a = np.array([[2,10,20],[80,43,31],[22,43,10]])

print("数组a:",a)

print("沿着axis=0计算百分位数",np.percentile(a,10,0))

print("沿着axis=1计算百分位数",np.percentile(a,10,1))

---------------

数组a:

[[ 2 10 20]

[80 43 31]

[22 43 10]]

沿着axis=0计算百分位数: [ 6. 16.6 12. ]

沿着axis=1计算百分位数: [ 3.6 33.4 12.4]

  1. numpy.median()

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

import numpy as np

a = np.array([[30,65,70],[80,95,10],[50,90,60]])

#数组a:

print(a)

#median()

print np.median(a)

#axis 0

print np.median(a, axis = 0)

#axis 1:

print(np.median(a, axis = 1))

-----------------

输出结果如下:

数组a:

[[30 65 70]

[80 95 10]

[50 90 60]]

调用median()函数:

65.0

median(axis=0):

[ 50. 90. 60.]

median(axis=1):

[ 65. 80. 60.]

  1. numpy.mean()

该函数表示沿指定的轴,计算数组中元素的算术平均值(即元素之总和除以元素数量)。

示例如下:

import numpy as np

a = np.array([[1,2,3],[3,4,5],[4,5,6]])

print ('我们的数组是:')

print (a)

print ('调用 mean() 函数:')

print (np.mean(a))

print ('沿轴 0 调用 mean() 函数:')

print (np.mean(a, axis = 0))

print ('沿轴 1 调用 mean() 函数:')

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.]

  1. numpy.average()

加权平均值是将数组中各数值乘以相应的权数,然后再对权重值求总和,最后以权重的总和除以总的单位数(即因子个数)。

numpy.average() 根据在数组中给出的权重,计算数组元素的加权平均值。该函数可以接受一个轴参数 axis,如果未指定,则数组被展开为一维数组。

下面举一个简单的示例:现有数组 [1,2,3,4] 和相应的权重数组 [4,3,2,1],它的加权平均值计算如下:

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

使用 average() 计算加权平均值,代码如下:

import numpy as np

a = np.array([1,2,3,4])

print('a数组是:')

print(a)

#average()函数:

print (np.average(a))

# 若不指定权重相当于对数组求均值

we = np.array([4,3,2,1])

#调用 average() 函数:')

print(np.average(a,weights = we))

#returned 为Ture,则返回权重的和

prin(np.average([1,2,3,4],weights = [4,3,2,1], returned = True))

-----------------

输出结果如下:

a数组是:

[1 2 3 4]

无权重值时average()函数:

2.5

有权重值时average()函数:

2.0

元组(加权平均值,权重的和):

(2.0, 10.0)

  1. numpy.var()

示例如下:

import numpy as np

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

--------------

输出结果如下:

1.25

  1. numpy.std()

标准差是方差的算术平方根,用来描述一组数据平均值的分散程度。若一组数据的标准差较大,说明大部分的数值和其平均值之间差异较大;若标准差较小,则代表这组数值比较接近平均值。它的公式如下:

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

NumPy 中使用 np.std() 计算标准差。示例如下:

import numpy as np

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

------------------------

1.1180339887498949

总结

NumPy提供了丰富的统计函数,可以方便地对数组进行各种统计计算,例如平均值、中位数、标准差、方差、最大值、最小值等。这些函数在数据分析、科学计算和机器学习等领域中扮演着重要角色。通过灵活运用这些统计函数,我们可以更好地理解和处理数据,并进行相应的数据分析和预测。在日常使用中,建议多熟悉这些函数的用法,以提高Python在科学计算方面的应用水平。返回搜狐,查看更多

责任编辑:

平台声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
阅读 ()
大家都在看
推荐阅读