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

dist 對應的 ContinuousDistribution 子類別。初始化器需要將所有形狀參數作為關鍵字引數傳遞(使用與 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