最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python+Scipy實現(xiàn)自定義任意的概率分布

 更新時間:2022年08月10日 15:40:34   作者:nejssd  
Scipy自帶了多種常見的分布,如正態(tài)分布、均勻分布、二項分布、多項分布、伽馬分布等等,還可以自定義任意的概率分布。本文將為大家介紹如何利用Scipy自定義任意的概率分布,感興趣的可以了解下

Scipy自帶了多種常見的分布,如正態(tài)分布、均勻分布、二項分布、多項分布、伽馬分布等等,還可以自定義任意的概率分布。本文將介紹如何利用Scipy自定義任意的概率分布。

連續(xù)變量分布

考慮連續(xù)變量x滿足如下概率密度分布函數(shù):

其在實數(shù)域積分為1。我們可以通過scipy.stats中的rv_continuous類去實現(xiàn)這個分布,代碼如下:

from scipy.stats import rv_continuous
import matplotlib.pyplot as plt
import numpy as np
class MyDistribution(rv_continuous):
    def _pdf(self, x):#概率密度分布函數(shù)
        return 2*sqrt(0.1)*exp(-0.1*x**2)*cos(x)**2/(sqrt(pi)*(exp(-10) + 1))
distribution = MyDistribution()
xlist=np.linspace(-8,8,300)
ylist=distribution.pdf(xlist)
samples=distribution.rvs(size=200);#取200次樣

fig,ax=plt.subplots(figsize=(8,6))
ax.plot(xlist,ylist,lw=3,color='red',label="$\mathrm{ideal}$");
ax.hist(samples,color='blue',density=True, bins=np.arange(-8,8,0.25), histtype='barstacked', rwidth=0.9,label=r"$\mathrm{samples}$")
ax.legend(fontsize=20);
ax.set_xlabel(r"$x$",size=25)
ax.set_ylabel(r"$\mathrm{PDF}$",size=20)
ax.set_xlim(-8,8);
ax.tick_params(axis='both',direction='in',width=1.3,length=3,top=1,right=1,labelsize=20,pad=2)
fig.tight_layout();
fig.show();

運行結(jié)果如下:

增加采樣次數(shù),分布直方圖逐漸趨于理想的概率分布函數(shù)P(x)。

離散變量分布

考慮連續(xù)變量x滿足泊松分布,則可以用scipy.stats中的rv_discrete類去實現(xiàn)這個分布,代碼如下:

from scipy.stats import rv_discrete
import matplotlib.pyplot as plt
import numpy as np
from scipy.special import factorial
class MyDistribution(rv_discrete):
    def _pmf(self, k, mu):
        return exp(-mu)*mu**k/factorial(k)
distribution = MyDistribution()
mu=2
samples=distribution.rvs(size=500,mu=mu);#取500次樣
klist = np.arange(0,10,1)
plist = distribution.pmf(klist,mu)
fig, ax = plt.subplots()
ax.plot(klist, plist, 'ro', ms=12, mec='r',label="$\mathrm{ideal}$");
ax.hist(samples,color='blue',density=True, bins=klist, histtype='barstacked', rwidth=0.8,label=r"$\mathrm{samples}$",align="left")
ax.legend(fontsize=20);
fig.show();

運行結(jié)果如下:

可以修改上述MyDistribution類中的pmf函數(shù),實現(xiàn)任意想要的離散分布。

二項分布Binomial Distribution

是n個獨立的成功/失敗試驗中成功的次數(shù)的離散概率分布,其中每次試驗的成功概率為p。這樣的單次成功/失敗試驗又稱為伯努利試驗。實際上,當n=1時,二項分布就是伯努利分布。

'''1、定義隨機變量'''
# 比如5次擲硬幣實驗,正面朝上的次數(shù)
n2=5
x2=np.arange(1,n2+1,1)
x2
array([1, 2, 3, 4, 5])
'''2、求對應的概率質(zhì)量函數(shù) (PMF)'''
p2=0.5
pList2=stats.binom.pmf(x2,n2,p2)
# 返回一個列表,列表中每個元素表示隨機變量中對應值的概率
pList2
array([0.15625, 0.3125 , 0.3125 , 0.15625, 0.03125])
'''3、繪圖'''
fig=plt.figure()
# plot在此的作用為顯示兩個標記點
plt.plot(x2,pList2,marker='o',linestyle='None')
'''
vlines用于繪制豎直線(vertical lines),
參數(shù)說明:vline(x坐標值, y坐標最小值, y坐標值最大值)
'''
plt.vlines(x2, 0, pList2)
plt.xlabel('隨機變量:拋硬幣5次')
plt.ylabel('概率')
plt.title('二項分布:n=%d,p2=%0.2f' % (n2,p2))
plt.show()

幾何分布Geometric Distribution

在n次伯努利試驗中,試驗k次才得到第一次成功的機率。詳細地說,是:前k-1次皆失敗,第k次成功的概率。幾何分布是帕斯卡分布當r=1時的特例。

'''1、定義隨機變量'''
# 比如射箭1次中靶的概率為90%,射5次箭
k=5
x3=np.arange(1,k+1,1)
x3
array([1, 2, 3, 4, 5])
'''2、求對應的概率質(zhì)量函數(shù) (PMF)'''
p3=0.7
pList3=stats.geom.pmf(x3,p3)
# 返回一個列表,表示在第i次射擊中,第一次射中的概率
pList3
array([0.7    , 0.21   , 0.063  , 0.0189 , 0.00567])
'''3、繪圖'''
fig=plt.figure()
# plot在此的作用為顯示兩個標記點
plt.plot(x3,pList3,marker='o',linestyle='None')
'''
vlines用于繪制豎直線(vertical lines),
參數(shù)說明:vline(x坐標值, y坐標最小值, y坐標值最大值)
'''
plt.vlines(x3, 0, pList3)
plt.xlabel('隨機變量:射擊5次')
plt.ylabel('概率')
plt.title('幾何分布:n=%d,p=%0.2f' % (k,p3))
plt.show()

泊松分布Poisson Distribution

描述在某單位時間內(nèi),事件發(fā)生n次的概率

'''1、定義隨機變量'''
# 某機器每季度發(fā)生故障平均為1次,那么在一年中機器發(fā)生10次的概率為
mu=4 # 平均值
k=10 # 要求發(fā)生10次的概率
x4=np.arange(1,k+1,1)
x4
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
'''2、求對應的概率質(zhì)量函數(shù) (PMF)'''
pList4=stats.poisson.pmf(x4,mu) # 一年的平均值為4
# 返回一個列表,表示1年中發(fā)生i次故障的概率
pList4
array([0.07326256, 0.14652511, 0.19536681, 0.19536681, 0.15629345,
       0.10419563, 0.05954036, 0.02977018, 0.01323119, 0.00529248])
'''3、繪圖'''
fig=plt.figure()
# plot在此的作用為顯示兩個標記點
plt.plot(x4,pList4,marker='o',linestyle='None')
'''
vlines用于繪制豎直線(vertical lines),
參數(shù)說明:vline(x坐標值, y坐標最小值, y坐標值最大值)
'''
plt.vlines(x4, 0, pList4)
plt.xlabel('隨機變量:發(fā)生k次故障')
plt.ylabel('概率')
plt.title('泊松分布:n=%d' % k)
plt.show()

到此這篇關(guān)于Python+Scipy實現(xiàn)自定義任意的概率分布的文章就介紹到這了,更多相關(guān)Python Scipy概率分布內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中異常類型ValueError使用方法與場景

    Python中異常類型ValueError使用方法與場景

    這篇文章主要介紹了Python中的ValueError異常類型,它在處理不合適的值時拋出,并提供如何有效使用ValueError的建議,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-01-01
  • Python讀取stdin方法實例

    Python讀取stdin方法實例

    在本篇文章中小編給大家分享了關(guān)于Python里如何讀取stdin的知識點以及相關(guān)實例內(nèi)容,需要的朋友們學習參考下。
    2019-05-05
  • python+pyqt實現(xiàn)12306圖片驗證效果

    python+pyqt實現(xiàn)12306圖片驗證效果

    這篇文章主要為大家詳細介紹了python+pyqt實現(xiàn)12306圖片驗證效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 基于OpenCV實現(xiàn)小型的圖像數(shù)據(jù)庫檢索功能

    基于OpenCV實現(xiàn)小型的圖像數(shù)據(jù)庫檢索功能

    下面就使用VLAD表示圖像,實現(xiàn)一個小型的圖像數(shù)據(jù)庫的檢索程序。下面實現(xiàn)需要的功能模塊,分步驟給大家介紹的非常詳細,對OpenCV圖像數(shù)據(jù)庫檢索功能感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • 如何用Python提取10000份log中的產(chǎn)品信息

    如何用Python提取10000份log中的產(chǎn)品信息

    這篇文章主要介紹了如何用Python提取10000份log中的產(chǎn)品信息,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • Python實現(xiàn)字符型圖片驗證碼識別完整過程詳解

    Python實現(xiàn)字符型圖片驗證碼識別完整過程詳解

    這篇文章主要介紹了Python實現(xiàn)字符型圖片驗證碼識別完整過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • Pandas自定義shift與DataFrame求差集的小技巧

    Pandas自定義shift與DataFrame求差集的小技巧

    Python是進行數(shù)據(jù)分析的一種出色語言,主要是因為以數(shù)據(jù)為中心的python軟件包具有奇妙的生態(tài)系統(tǒng),下面這篇文章主要給大家介紹了關(guān)于Pandas自定義shift與DataFrame求差集的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • Python運行錯誤異常代碼含義對照表

    Python運行錯誤異常代碼含義對照表

    這篇文章主要介紹了Python運行錯誤異常代碼含義對照表,需要的朋友可以參考下
    2021-04-04
  • Python import用法以及與from...import的區(qū)別

    Python import用法以及與from...import的區(qū)別

    這篇文章主要介紹了Python import用法以及與from...import的區(qū)別,本文簡潔明了,很容易看懂,需要的朋友可以參考下
    2015-05-05
  • Python分割指定頁數(shù)的pdf文件方法

    Python分割指定頁數(shù)的pdf文件方法

    今天小編就為大家分享一篇Python分割指定頁數(shù)的pdf文件方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10

最新評論

青浦区| 巨野县| 嵩明县| 阳山县| 沧州市| 深州市| 惠东县| 丹寨县| 太仆寺旗| 连平县| 湖南省| 永宁县| 浪卡子县| 方城县| 永顺县| 沁阳市| 黄冈市| 饶河县| 尚志市| 德兴市| 松江区| 辽中县| 汾西县| 晋州市| 安新县| 贵德县| 福贡县| 余姚市| 家居| 阿图什市| 吴川市| 云林县| 龙口市| 得荣县| 思茅市| 遂川县| 博野县| 江达县| 汶上县| 保亭| 那曲县|