python隨機采樣函數np.random.choice


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] 如果要求的數目大於數組的長度,原來它是可以自動這樣重復采樣的啊。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM