本文簡要介紹 python 語言中 scipy.stats.rv_discrete
的用法。
用法:
class scipy.stats.rv_discrete(a=0, b=inf, name=None, badvalue=None, moment_tol=1e-08, values=None, inc=1, longname=None, shapes=None, seed=None)#
用於子類化的通用離散隨機變量類。
rv_discrete
是為離散隨機變量構造特定分布類和實例的基類。它還可用於構造由支持點列表和相應概率定義的任意分布。- a: 浮點數,可選
分布支持的下限,默認值:0
- b: 浮點數,可選
分布支持的上限,默認:加無窮大
- moment_tol: 浮點數,可選
力矩的通用計算的公差。
- values: 兩個 數組 的元組,可選
(xk, pk)
其中xk
是整數,pk
是sum(pk) = 1
0 和 1 之間的非零概率。xk
和pk
必須具有相同的形狀,並且xk
必須是唯一的。- inc: 整數,可選
增量支持分布。默認為 1。(其他值未測試)
- badvalue: 浮點數,可選
結果數組中的值指示違反了某些參數限製的值,默認為 np.nan。
- name: str,可選
實例的名稱。此字符串用於構造分布的默認示例。
- longname: str,可選
當子類沒有自己的文檔字符串時,此字符串用作返回的文檔字符串的第一行的一部分。注意:longname 的存在是為了向後兼容,不要用於新的子類。
- shapes: str,可選
分布的形狀。例如,“m, n”表示將兩個整數作為其所有方法的兩個形狀參數的分布 如果未提供,將從實例的私有方法
_pmf
和_cdf
.- seed: {無,int,
numpy.random.Generator
,numpy.random.RandomState
},可選 如果種子是無(或np.random), 這
numpy.random.RandomState
使用單例。如果種子是一個 int,一個新的RandomState
使用實例,播種種子.如果種子已經是一個Generator
或者RandomState
實例然後使用該實例。
參數 ::
注意:
該類類似於
rv_continuous
。形狀參數是否有效由_argcheck
方法決定(默認檢查其參數是否嚴格為正)。主要區別如下。分布的支持是一組整數。
代替概率密度函數,
pdf
(以及相應的私有_pdf
),這個類定義了概率質量函數,pmf
(以及相應的私有_pmf
.)沒有
scale
參數。方法的默認實現(例如
_cdf
)不適用於具有以下無限支持的發行版(即a=-np.inf
),因此必須重寫它們。
要創建新的離散分布,我們將執行以下操作:
>>> from scipy.stats import rv_discrete >>> class poisson_gen(rv_discrete): ... "Poisson distribution" ... def _pmf(self, k, mu): ... return exp(-mu) * mu**k / factorial(k)
並創建一個實例:
>>> poisson = poisson_gen(name="poisson")
請注意,上麵我們以標準形式定義了泊鬆分布。可以通過向實例的方法提供
loc
參數來改變分布。例如,poisson.pmf(x, mu, loc)
將工作委托給poisson._pmf(x-loc, mu)
。概率列表中的離散分布
或者,您可以通過使用
rv_discrete
構造函數的values
關鍵字參數來構造在有限值集xk
和Prob{X=xk} = pk
上定義的任意離散 rv。深複製/酸洗
如果對分布或凍結分布進行深度複製(pickled/unpickled 等),則任何底層隨機數生成器都會隨之進行深度複製。這意味著,如果一個發行版在複製之前依賴於單例 RandomState,那麽它將在複製後依賴於該隨機狀態的副本,並且
np.random.seed
將不再控製該狀態。例子:
定製離散分布:
>>> import numpy as np >>> from scipy import stats >>> xk = np.arange(7) >>> pk = (0.1, 0.2, 0.3, 0.1, 0.1, 0.0, 0.2) >>> custm = stats.rv_discrete(name='custm', values=(xk, pk)) >>> >>> import matplotlib.pyplot as plt >>> fig, ax = plt.subplots(1, 1) >>> ax.plot(xk, custm.pmf(xk), 'ro', ms=12, mec='r') >>> ax.vlines(xk, 0, custm.pmf(xk), colors='r', lw=4) >>> plt.show()
隨機數生成:
>>> R = custm.rvs(size=100)
random_state
獲取或設置生成隨機變量的生成器對象。
屬性 ::
相關用法
- Python SciPy stats.rv_histogram用法及代碼示例
- 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_discrete。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。