1.np.random.choice
numpy.random.choice(a, size=None, replace=True, p=None)
- 從給定的一維數組中生成隨機數
- 參數: a為一維數組類似數據或整數;size為數組維度;p為數組中的數據出現的概率
- a為整數時,對應的一維數組為np.arange(a)
https://blog.csdn.net/qfpkzheng/article/details/79061601
import numpy as np # 參數意思分別 是從a 中以概率P,隨機選擇3個, p沒有指定的時候相當於是一致的分布 a1 = np.random.choice(a=5, size=3, replace=False, p=None) print(a1) # 非一致的分布,會以多少的概率提出來 a2 = np.random.choice(a=5, size=3, replace=False, p=[0.2, 0.1, 0.3, 0.4, 0.0]) print(a2) # replacement 代表的意思是抽樣之后還放不放回去,如果是False的話,那么出來的三個數都不一樣,
# 如果是True的話, 有可能會出現重復的,因為前面的抽的放回去了。
2.例子
默認replace=True,即默認是可以重復采樣的。
>>> np.random.choice(5)
2
>>> np.random.choice(5,2) array([0, 3])
默認重復采樣:
>>> demo_list = ['lenovo', 'sansumg','moto','xiaomi', 'iphone']
>>> np.random.choice(demo_list,size=(3,3)) array([['iphone', 'iphone', 'lenovo'], ['lenovo', 'iphone', 'iphone'], ['xiaomi', 'iphone', 'lenovo']], dtype='<U7')
如果采樣大小size超過了a的大小,那么自動重復采樣:
import numpy as np
print(np.random.choice([1,2,3,4],10)) #結果 [3 4 2 1 4 3 1 4 1 3] 如果要求的數目大於數組的長度,原來它是可以自動這樣重復采樣的啊。