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之后的结果

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值