当前位置: 首页 > 文档资料 > NumPy 教程 >

统计函数

优质
小牛编辑
195浏览
2023-12-01

这些函数从给定数组中的元素沿指定轴返回最小值和最大值。

输出如下:

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

numpy.ptp()

numpy.ptp()函数返回沿轴的值的范围(最大值 - 最小值)。

  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 '\n'
  6. print '调用 ptp() 函数:'
  7. print np.ptp(a)
  8. print '\n'
  9. print '沿轴 1 调用 ptp() 函数:'
  10. print np.ptp(a, axis = 1)
  11. print '\n'
  12. print '沿轴 0 调用 ptp() 函数:'
  13. print np.ptp(a, axis = 0)

输出如下:

  1. 我们的数组是:
  2. [[3 7 5]
  3. [8 4 3]
  4. [2 4 9]]
  5. 调用 ptp() 函数:
  6. 7
  7. 沿轴 1 调用 ptp() 函数:
  8. [4 5 7]
  9. 沿轴 0 调用 ptp() 函数:
  10. [6 3 6]

百分位数是统计中使用的度量,表示小于这个值的观察值的百分比。 函数numpy.percentile()接受以下参数。

  1. numpy.percentile(a, q, axis)

其中:

示例

  1. import numpy as np
  2. a = np.array([[30,40,70],[80,20,10],[50,90,60]])
  3. print a
  4. print '\n'
  5. print '调用 percentile() 函数:'
  6. print np.percentile(a,50)
  7. print '\n'
  8. print '沿轴 1 调用 percentile() 函数:'
  9. print np.percentile(a,50, axis = 1)
  10. print '\n'
  11. print '沿轴 0 调用 percentile() 函数:'
  12. print np.percentile(a,50, axis = 0)
  1. 我们的数组是:
  2. [[30 40 70]
  3. [80 20 10]
  4. [50 90 60]]
  5. 调用 percentile() 函数:
  6. 50.0
  7. 沿轴 1 调用 percentile() 函数:
  8. [ 40. 20. 60.]
  9. 沿轴 0 调用 percentile() 函数:
  10. [ 50. 40. 60.]

numpy.median()

中值定义为将数据样本的上半部分与下半部分分开的值。 numpy.median()函数的用法如下面的程序所示。

输出如下:

  1. 我们的数组是:
  2. [[30 65 70]
  3. [80 95 10]
  4. [50 90 60]]
  5. 调用 median() 函数:
  6. 65.0
  7. 沿轴 0 调用 median() 函数:
  8. [ 50. 90. 60.]
  9. 沿轴 1 调用 median() 函数:
  10. [ 65. 80. 60.]

算术平均值是沿轴的元素的总和除以元素的数量。 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 '\n'
  6. print '调用 mean() 函数:'
  7. print np.mean(a)
  8. print '\n'
  9. print '沿轴 0 调用 mean() 函数:'
  10. print np.mean(a, axis = 0)
  11. print '\n'
  12. print '沿轴 1 调用 mean() 函数:'
  13. print np.mean(a, axis = 1)

输出如下:

  1. [[1 2 3]
  2. [3 4 5]
  3. [4 5 6]]
  4. 调用 mean() 函数:
  5. 3.66666666667
  6. 沿轴 0 调用 mean() 函数:
  7. [ 2.66666667 3.66666667 4.66666667]
  8. 沿轴 1 调用 mean() 函数:
  9. [ 2. 4. 5.]

numpy.average()

加权平均值是由每个分量乘以反映其重要性的因子得到的平均值。 numpy.average()函数根据在另一个数组中给出的各自的权重计算数组中元素的加权平均值。 该函数可以接受一个轴参数。 如果没有指定轴,则数组会被展开。

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

  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 '\n'
  6. print '调用 average() 函数:'
  7. print np.average(a)
  8. print '\n'
  9. # 不指定权重时相当于 mean 函数
  10. wts = np.array([4,3,2,1])
  11. print '再次调用 average() 函数:'
  12. print np.average(a,weights = wts)
  13. print '\n'
  14. # 如果 returned 参数设为 true,则返回权重的和
  15. print '权重的和:'
  16. print np.average([1,2,3, 4],weights = [4,3,2,1], returned = True)
  1. 我们的数组是:
  2. [1 2 3 4]
  3. 调用 average() 函数:
  4. 2.5
  5. 再次调用 average() 函数:
  6. 2.0
  7. 权重的和:
  8. (2.0, 10.0)

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

示例

输出如下:

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

标准差是与均值的偏差的平方的平均值的平方根。 标准差公式如下:

  1. 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. print np.std([1,2,3,4])

输出如下:

  1. 1.1180339887498949

方差

方差是偏差的平方的平均值,即mean((x - x.mean())** 2)。 换句话说,标准差是方差的平方根。

示例

  1. import numpy as np
  1. 1.25