numpy 笔记:histogram

1 方法介绍

计算数据的直方图

numpy.histogram(a, 
                bins=10, 
                range=None, 
                density=None, 
                weights=None)

2 参数介绍

a 输入数据,直方图是在展平(flatten)的数据上计算的
bins
  • bins 是int
    • ——>定义给定范围内等宽 bin 的数量
  • bins是序列
    • ——>定义了一个单调递增的 bin 边界数组,包括最右边的边界,允许不均匀的 bin 宽度
  • bins是字符串
    • 定义了用于计算最佳 bin 宽度的方法
    • 使用所选的方法计算最佳的bin宽度,进而计算bin的数量
    • 'fd' (Freedman-Diaconis 估计器):鲁棒(对异常值具有鲁棒性)估计器,考虑了数据的变异性和数据大小。
      'sturges'

      仅考虑数据大小。

      对于高斯数据,它是最佳的选择,但对于大型非高斯数据集,会低估bin的数量。

      'doane' Sturges 估计器的改进版本,适用于非正态分布的数据集
      'scott' 考虑了数据的变异性和数据大小,但鲁棒性较差的估计器
      'rice' 仅考虑数据大小,而不考虑变异性。通常会高估所需的bin数量
      'sqrt' 数据大小的平方根估计器,Excel 和其他程序使用它,因为它速度快、简单易用
      'auto'

      'sturges' 和 'fd' 估计器中的较大者。提供了良好的综合性能。

      对于可视化,建议使用 'auto' 选项

range
  • bin的上下界
    • 在range外面的值会被忽略
  • 如果没有给定,那么range就是(a.min,a.max)
weight
  • 和数组 a 具有相同形状的权重数组
  • 为每个数据点指定一个权重,以更准确地计算直方图的结果(默认均为1)
density
  • 如果 density 参数为 False,结果将包含每个箱(bin)中的样本数。
  • 如果 density 参数为 True,结果将是每个箱(bin)处概率密度函数的值,归一化以使范围上的积分为1

3 举例

import numpy as np
np.histogram([1, 2, 1], bins=[0, 1, 2, 3])
#(array([0, 2, 1], dtype=int64), array([0, 1, 2, 3]))

np.histogram([1, 2, 1], bins=[0, 1, 2, 3],density=True)
#(array([0.        , 0.66666667, 0.33333333]), array([0, 1, 2, 3]))

np.histogram(np.arange(4), bins=np.arange(5), density=True)
#(array([0.25, 0.25, 0.25, 0.25]), array([0, 1, 2, 3, 4]))

(array([0.25, 0.25, 0.25, 0.25]), array([0, 1, 2, 3, 4]))
#(array([0.25, 0.25, 0.25, 0.25]), array([0, 1, 2, 3, 4]))
#flatten之后的结果

你可能感兴趣的:(python库整理,numpy,笔记,python)