numpy.random.choice()函數(shù)詳解
處理數(shù)據(jù)時(shí)我們經(jīng)常需要從數(shù)組中隨機(jī)抽取元素,這時(shí)候我們可以考慮使用np.random.choice()函數(shù)
語(yǔ)法格式
numpy.random.choice(a, size=None, replace=True, p=None)
參數(shù)說明
a:如果a是一維數(shù)組,就表示從這個(gè)一維數(shù)組中隨機(jī)采樣;如果a是整數(shù),就表示從0到a-1這個(gè)序列中隨機(jī)采樣
size: 從a中選取size個(gè)數(shù)(采樣結(jié)果的數(shù)量,以概率p隨機(jī)選取大小為size的數(shù)據(jù))
replace:布爾值,表示是否重用元素,即抽取出來的數(shù)據(jù)是否放回原數(shù)組中,默認(rèn)為True(抽取出來的數(shù)據(jù)有重復(fù))
p:一個(gè)一維數(shù)組,其與數(shù)組a相對(duì)應(yīng),表示取數(shù)組a中每個(gè)元素的概率,默認(rèn)p=None表示選取的每個(gè)元素的概率相同
1.參數(shù)a
如果參數(shù)a=5,表示在[0, 5)中隨機(jī)輸出一個(gè)隨機(jī)數(shù)
import numpy as np np.random.choice(5) # 3
如果參數(shù)a = ['Guangzhou', 'Beijing', 'Shanghai', 'Shenzhen'],表示在['Guangzhou', 'Beijing', 'Shanghai', 'Shenzhen']中隨機(jī)輸出一個(gè)隨機(jī)數(shù)
import numpy as np a = ['Guangzhou', 'Beijing', 'Shanghai', 'Shenzhen'] np.random.choice(a) # 'Shenzhen'
2.參數(shù)size
在[0, 5)內(nèi)輸出3個(gè)數(shù)字并組成一維數(shù)組(ndarray)
import numpy as np np.random.choice(5, 3) # array([3, 2, 3])
在['Guangzhou', 'Beijing', 'Shanghai', 'Shenzhen']內(nèi)輸出3個(gè)值并組成一維數(shù)組(ndarry)
import numpy as np a = ['Guangzhou', 'Beijing', 'Shanghai', 'Shenzhen'] # array(['Shanghai', 'Shenzhen', 'Shanghai'], dtype='<U9') np.random.choice(a, size=3)
3.參數(shù)replace
replace=False表示非放回采樣(不會(huì)出現(xiàn)重復(fù)的元素)
import numpy as np # array([4, 0, 3]) np.random.choice(a=5, size=3, replace=False, p=None)
replace=True表示放回采樣(會(huì)出現(xiàn)重復(fù)的元素)
import numpy as np # array([1, 0, 0]) np.random.choice(a=5, size=3, replace=True, p=None)
4.參數(shù)p
參數(shù)p實(shí)際是個(gè)數(shù)組,數(shù)組元素的個(gè)數(shù)應(yīng)該與指定的參數(shù)a相同,用來規(guī)定選取a中每個(gè)元素的概率,默認(rèn)概率相同,我們可以使用參數(shù)p來按概率生成隨機(jī)數(shù)
例子1
import numpy as np # array([3, 4, 3], dtype=int64) np.random.choice(5, 3, p=[0.1, 0.2, 0.3, 0.1, 0.3])
上述代碼表示分別以p=[0.1, 0.2, 0.3, 0.1, 0.3]的概率從[0,1,2,3,4]這四個(gè)數(shù)中選取3個(gè)數(shù)
例子2
每天參加體育鍛煉的時(shí)間是多少?
A.沒時(shí)間鍛煉
B.10-20分鐘
C.20-40分鐘
D.50分鐘以上
假設(shè)有100人填上述選擇題,該題共有4個(gè)選項(xiàng)(ABCD),我們?nèi)绾伟锤怕士刂七@100個(gè)人選擇A的概率是0.3,B的概率是0.3,C的概率0.3,D的概率是0.1?
import numpy lists = [] for i in range(1, 101): r = numpy.random.choice(a=numpy.arange(1,5), p=[0.3, 0.3, 0.3, 0.1]) lists.append(r) A = 0 B = 0 C = 0 D = 0 ''' 數(shù)字1代表A 數(shù)字2代表B 數(shù)字3代表C 數(shù)字4代表D ''' for i in lists: if i == 1: A = A + 1 elif i == 2: B = B + 1 elif i == 3: C = C + 1 elif i == 4: D = D + 1 print("A選項(xiàng)個(gè)數(shù):", A) print("B選項(xiàng)個(gè)數(shù):", B) print("C選項(xiàng)個(gè)數(shù):", C) print("D選項(xiàng)個(gè)數(shù):", D)
結(jié)果如下所示
A選項(xiàng)個(gè)數(shù): 27
B選項(xiàng)個(gè)數(shù): 26
C選項(xiàng)個(gè)數(shù): 36
D選項(xiàng)個(gè)數(shù): 11
到此這篇關(guān)于numpy.random.choice()函數(shù)的文章就介紹到這了,更多相關(guān)numpy.random.choice()函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python+Sympy實(shí)現(xiàn)計(jì)算微積分
微積分的計(jì)算也許平時(shí)用不到,會(huì)讓人覺得有點(diǎn)高深,它們的計(jì)算過程中需要使用很多計(jì)算規(guī)則,但是使用?Sympy?可以有效減輕這方面的負(fù)擔(dān),本文就來和大家簡(jiǎn)單講講吧2023-07-07python?pycharm安裝第三方包失敗(使用pip安裝失敗)的解決方案
這篇文章主要給大家介紹了關(guān)于python?pycharm安裝第三方包失敗(使用pip安裝失敗)的解決方案,文中將可能遇到的幾種情況都進(jìn)行了分析并給出了詳細(xì)的解決方案,需要的朋友可以參考下2023-11-11Python 找出出現(xiàn)次數(shù)超過數(shù)組長(zhǎng)度一半的元素實(shí)例
這篇文章主要介紹了Python 找出出現(xiàn)次數(shù)超過數(shù)組長(zhǎng)度一半的元素實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05Python實(shí)現(xiàn)提取和去除數(shù)據(jù)中包含關(guān)鍵詞的行
這篇文章主要介紹了Python如何提取數(shù)據(jù)中包含關(guān)鍵詞的行已經(jīng)如何去除數(shù)據(jù)中包含關(guān)鍵詞的行,文中的示例代碼講解詳細(xì),需要的可以參考一下2023-08-08Python?4種實(shí)現(xiàn)定時(shí)任務(wù)的方案
這篇文章主要給大家分享了Python?4種實(shí)現(xiàn)定時(shí)任務(wù)的方案,運(yùn)用 while True: + sleep()、Timeloop 庫(kù)、threading.Timer 、內(nèi)置模塊 sched ,下面就來看看具體的實(shí)現(xiàn)過程吧2021-12-12Pycharm安裝并配置jupyter notebook的實(shí)現(xiàn)
這篇文章主要介紹了Pycharm安裝并配置jupyter notebook的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05詳解pycharm連接不上mysql數(shù)據(jù)庫(kù)的解決辦法
這篇文章主要介紹了詳解pycharm連接不上mysql數(shù)據(jù)庫(kù)的解決辦法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01python 數(shù)據(jù)庫(kù)查詢返回list或tuple實(shí)例
這篇文章主要介紹了python 數(shù)據(jù)庫(kù)查詢返回list或tuple實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05詳解Python對(duì)某地區(qū)二手房房?jī)r(jià)數(shù)據(jù)分析
這篇文章主要為大家介紹了Python數(shù)據(jù)分析某地區(qū)二手房房?jī)r(jià),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2021-12-12Python字符串格式化format()方法運(yùn)用實(shí)例
這篇文章主要給大家介紹了關(guān)于Python字符串格式化format()方法運(yùn)用實(shí)例的相關(guān)資料,字符串格式化是Python編程中十分常用的部分,它可以幫助我們將更具可讀性的數(shù)據(jù)輸出到控制臺(tái)或?qū)懭胛募?需要的朋友可以參考下2023-08-08