scipy.stats.

make_distribution#

scipy.stats.make_distribution(dist)[源代码]#

rv_continuous 的实例生成一个 ContinuousDistribution

返回值是 ContinuousDistribution 的子类。像 ContinuousDistribution 的任何子类一样,它必须在使用前被实例化(例如,通过将所有形状参数作为关键字参数传递)。一旦实例化,生成的对象将具有与 ContinuousDistribution 的任何其他实例相同的接口;例如,scipy.stats.Normal

注意

make_distribution 并非完美适用于 rv_continuous 的所有实例。已知失败的例子包括 levy_stablevonmises,并且某些分布的某些方法不支持数组形状参数。

参数:
distrv_continuous

rv_continuous 的实例。

返回:
CustomDistributionContinuousDistribution

ContinuousDistribution 的子类,与 dist 相对应。初始化器要求将所有形状参数作为关键字参数传递(使用与 rv_continuous 实例相同的名称)。

说明

没有渲染 ContinuousDistribution 的文档。请参见下面的示例,了解如何实例化类(即,将 dist 的所有形状参数作为关键字参数传递给初始化器)。所有方法的文档与 scipy.stats.Normal 的文档相同。有关更多信息,请对返回的类或其方法使用 help

示例

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from scipy import stats
>>> LogU = stats.make_distribution(stats.loguniform)
>>> X = LogU(a=1.0, b=3.0)
>>> np.isclose((X + 0.25).median(), stats.loguniform.ppf(0.5, 1, 3, loc=0.25))
np.True_
>>> X.plot()
>>> sample = X.sample(10000, rng=np.random.default_rng())
>>> plt.hist(sample, density=True, bins=30)
>>> plt.legend(('pdf', 'histogram'))
>>> plt.show()
../../_images/scipy-stats-make_distribution-1.png