scipy.stats.
make_distribution#
- scipy.stats.make_distribution(dist)[源代码]#
从
rv_continuous
的实例生成一个 ContinuousDistribution。返回值是 ContinuousDistribution 的子类。像 ContinuousDistribution 的任何子类一样,它必须在使用前被实例化(例如,通过将所有形状参数作为关键字参数传递)。一旦实例化,生成的对象将具有与 ContinuousDistribution 的任何其他实例相同的接口;例如,
scipy.stats.Normal
。注意
make_distribution
并非完美适用于rv_continuous
的所有实例。已知失败的例子包括levy_stable
和vonmises
,并且某些分布的某些方法不支持数组形状参数。- 参数:
- dist
rv_continuous
rv_continuous
的实例。
- dist
- 返回:
- 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()