?np.random.choice
choice(a, size=None, replace=True, p=None)
a為一個(gè)一維數(shù)據(jù)或者int的對(duì)象
size為隨機(jī)選取出后的數(shù)據(jù)的類(lèi)型,可以是一維二拐,也可以是二維
replace=True 代表選取后可以放回箩朴,也就是說(shuō)有可能會(huì)出現(xiàn)重復(fù)選取的數(shù)據(jù)
replace=False 代表選取后不放回枕面,不會(huì)出現(xiàn)重復(fù)數(shù)據(jù)
p為選取的概率
舉例:
1、關(guān)于a和size的變化:
np.random.choice(5,3)
np.random.choice(range(5),3)
這兩者隨機(jī)選取的值在形式上是相同的痪枫,選取結(jié)果如下:
也就是說(shuō)炼蹦,random.choice中的參數(shù)a如果為一個(gè)int類(lèi)型,那么會(huì)自動(dòng)生成一個(gè)(0,5)的一維數(shù)組形式孵坚,選取有重復(fù)的,是默認(rèn)replace=True,3為選取的個(gè)數(shù)窥淆。
當(dāng)然這種形式也是可以的:
只要a是一個(gè)1-D形式
size也可以變化:
np.random.choice(10,(3,4))
從0到10的數(shù)據(jù)中選取出了三行四列的一個(gè)二維數(shù)據(jù)
注:這中間也會(huì)有重復(fù)選取的數(shù)據(jù)
replace的實(shí)例:
假如:講上述變化為np.random.choice(10,(3,4),replace=False)
報(bào)錯(cuò)卖宠,原因是樣本數(shù)據(jù)只有10個(gè),但卻要選取出不重復(fù)的12個(gè)忧饭,這顯然是不可以的邻奠。
解決方法就是:將樣本數(shù)據(jù)擴(kuò)大或者選取的樣本數(shù)減少
p的概率的實(shí)例解釋:
np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
array([3, 3, 0])
在(0,5)中選取3個(gè)數(shù)據(jù)羡儿,p為概率熟丸,
可理解為:0選取的概率為10%
1選取的概率為0% 依次類(lèi)推
2為30%豫尽,3為60%,4為0%
3被選取的概率最大
注:p概率總和為1
修改了概率0.8吼砂,總和超過(guò)了1:
p與replace的變化:
np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0])
以p的概率從0-5中選取3個(gè)數(shù)據(jù)逆航,不重復(fù)。
由于1和4的概率為0渔肩,所以無(wú)論怎么選取都只會(huì)選出0,2,3因俐,只是順序不同而已
選取數(shù)據(jù)為4,報(bào)錯(cuò)的原因也很容易理解了
選取3個(gè)后剩下的選取概率為0,第4個(gè)數(shù)據(jù)就無(wú)法被選取出來(lái)了抹剩。