一个很多的人要计算使用概率密度函数numpy.hist
并且很困惑,它无法做到这一点。
然而,它可以计算概率密度函数,并且https://github.com/numpy/numpy/issues/1043通过将normed
重命名density
做得很好。
与此类似,我建议添加一个mass
关键字(如果True
)返回概率质量函数。
一旦我得到积极的反馈,我也会实现这个功能。
我们需要讨论一个事实,即归一化和分箱是直方图的两个独立因素。 PDF 和 PMF 是不正确的类别,因为您可以对按曲线下面积 (PDF) 归一化的连续变量、根本未归一化的连续变量(计数)、按箱值总和归一化的连续变量进行分箱(不是真正的 PMF,因为它是分箱的),那些通过非连续变量(雪佛兰、沃尔沃、福特等 PMF)的分箱值的总和进行归一化的,可能还有其他。 一些工具显然使用字符串输入作为选择。
我一直在和 matplotlib 争论这个。 我认为这不是 numpy 的工作,因为规范化在数学上很容易在事后进行。 只是图形很难。 正是它们的包装器使得难以在流程中执行中间步骤,例如规范化。 但我离题了。
考虑到在直方图中使用标准化的频率,我认为从方便的角度考虑该功能是有意义的。 当然,额外的一行一次并不是什么大问题,但是它加起来并且当前的实现在寻找规范并且意识到参数不能满足您的需要时可能会令人沮丧。 就个人而言,我赞成使用 norm_type 参数而不是添加新参数。
不过应该注意的是,Matplotlib 直接接受 np.histogram 的返回结构作为 plot/bar/etc 的输入。 使用 Pandas DataFrames 时事情变得有点麻烦,因为您必须手动切片,运行 np.histogram,然后绘图,但这也是可行的。
最重要的是,将 count/sum/pmf 归一化实现到 np.histogram 是微不足道的(一个反对它的论点),但会为构建在其上的模块提供便利。
在 matplotlib/matplotlib#10398 上有很多关于添加这样一个可能值得回顾的关键字的讨论
最有用的评论
考虑到在直方图中使用标准化的频率,我认为从方便的角度考虑该功能是有意义的。 当然,额外的一行一次并不是什么大问题,但是它加起来并且当前的实现在寻找规范并且意识到参数不能满足您的需要时可能会令人沮丧。 就个人而言,我赞成使用 norm_type 参数而不是添加新参数。
不过应该注意的是,Matplotlib 直接接受 np.histogram 的返回结构作为 plot/bar/etc 的输入。 使用 Pandas DataFrames 时事情变得有点麻烦,因为您必须手动切片,运行 np.histogram,然后绘图,但这也是可行的。
最重要的是,将 count/sum/pmf 归一化实现到 np.histogram 是微不足道的(一个反对它的论点),但会为构建在其上的模块提供便利。