本文简要介绍 python 语言中 scipy.stats.rv_histogram
的用法。
用法:
class scipy.stats.rv_histogram(histogram, *args, density=None, **kwargs)#
生成由直方图给出的分布。这对于从分箱数据样本生成模板分布很有用。
作为
rv_continuous
类的子类,rv_histogram
继承了一组通用方法(完整列表请参阅rv_continuous
),并根据提供的分箱数据样本的属性来实现它们。- histogram: 数组 的元组
包含两个 数组 对象的元组。第一个包含 n 个容器的内容,第二个包含 (n+1) 个容器边界。特别是,接受
numpy.histogram
的返回值。- density: 布尔型,可选
如果为 False,则假定直方图与每个 bin 的计数成正比;否则,假设它与密度成正比。对于恒定的 bin 宽度,这些是等效的,但是当 bin 宽度变化时,区别很重要(参见注释)。如果无(默认),则设置
density=True
为了向后兼容,但如果 bin 宽度可变则发出警告。放密度明确地消除警告。
参数 ::
注意:
当直方图具有不相等的箱宽度时,与每个箱的计数成比例的直方图和与箱上的概率密度成比例的直方图之间存在区别。如果使用默认值
density=False
调用numpy.histogram
,则生成的直方图是每个 bin 的计数数,因此density=False
应传递给rv_histogram
。如果使用density=True
调用numpy.histogram
,则生成的直方图是概率密度形式的,因此density=True
应传递给rv_histogram
。为了避免警告,当输入直方图具有不相等的 bin 宽度时,请始终显式传递density
。除了位置和比例之外,没有其他形状参数。 pdf 被定义为所提供直方图的逐步函数。 cdf 是 pdf 的线性插值。
例子:
从 numpy 直方图创建 scipy.stats 分布
>>> import scipy.stats >>> import numpy as np >>> data = scipy.stats.norm.rvs(size=100000, loc=0, scale=1.5, ... random_state=123) >>> hist = np.histogram(data, bins=100) >>> hist_dist = scipy.stats.rv_histogram(hist, density=False)
表现得像一个普通的 scipy rv_continuous 分布
>>> hist_dist.pdf(1.0) 0.20538577847618705 >>> hist_dist.cdf(2.0) 0.90818568543056499
PDF 在直方图的最高(最低)区间上方(下方)为零,由原始数据集的最大值(最小值)定义
>>> hist_dist.pdf(np.max(data)) 0.0 >>> hist_dist.cdf(np.max(data)) 1.0 >>> hist_dist.pdf(np.min(data)) 7.7591907244498314e-05 >>> hist_dist.cdf(np.min(data)) 0.0
PDF 和 CDF 遵循直方图
>>> import matplotlib.pyplot as plt >>> X = np.linspace(-5.0, 5.0, 100) >>> fig, ax = plt.subplots() >>> ax.set_title("PDF from Template") >>> ax.hist(data, density=True, bins=100) >>> ax.plot(X, hist_dist.pdf(X), label='PDF') >>> ax.plot(X, hist_dist.cdf(X), label='CDF') >>> ax.legend() >>> fig.show()
random_state
获取或设置生成随机变量的生成器对象。
属性 ::
相关用法
- Python SciPy stats.rv_discrete用法及代码示例
- Python SciPy stats.rv_continuous用法及代码示例
- Python SciPy stats.rvs_ratio_uniforms用法及代码示例
- Python SciPy stats.rayleigh用法及代码示例
- Python SciPy stats.rankdata用法及代码示例
- Python SciPy stats.random_table用法及代码示例
- Python SciPy stats.recipinvgauss用法及代码示例
- Python SciPy stats.rel_breitwigner用法及代码示例
- Python SciPy stats.rice用法及代码示例
- Python SciPy stats.random_correlation用法及代码示例
- Python SciPy stats.ranksums用法及代码示例
- Python SciPy stats.relfreq用法及代码示例
- Python SciPy stats.randint用法及代码示例
- Python SciPy stats.rdist用法及代码示例
- Python SciPy stats.anderson用法及代码示例
- Python SciPy stats.iqr用法及代码示例
- Python SciPy stats.genpareto用法及代码示例
- Python SciPy stats.skewnorm用法及代码示例
- Python SciPy stats.cosine用法及代码示例
- Python SciPy stats.norminvgauss用法及代码示例
- Python SciPy stats.directional_stats用法及代码示例
- Python SciPy stats.invwishart用法及代码示例
- Python SciPy stats.bartlett用法及代码示例
- Python SciPy stats.levy_stable用法及代码示例
- Python SciPy stats.page_trend_test用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.rv_histogram。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。