1. 程式人生 > >np.random.choice方法

np.random.choice方法

np.random.choice方法

覺得有用的話,歡迎一起討論相互學習~Follow Me

  • def choice(a, size=None, replace=True, p=None)
    • 表示從a中隨機選取size個數
    • replacement 代表的意思是抽樣之後還放不放回去,如果是False的話,那麼通一次挑選出來的數都不一樣,如果是True的話, 有可能會出現重複的,因為前面的抽的放回去了。
    • p表示每個元素被抽取的概率,如果沒有指定,a中所有元素被選取的概率是相等的。

預設為有放回的抽樣 (可以重複)

  • np.random.choice(5, 3)
    • 和np.random.randint(0,5,3)意思相同,表示從[0,5)之間隨機以等概率選取3個數
  • np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
    • 表示分別以p=[0.1, 0, 0.3, 0.6, 0]的概率從[0,1,2,3,4]這四個數中選取3個數

以下為無放回的抽樣 (不會出現重複的元素)

  • np.random.choice(a=5, size=3, replace=False, p=None)
  • np.random.choice(a=5, size=3, replace=False, p=[0.2, 0.1, 0.3, 0.4, 0.0])

此方法也可以對列表List型別元素使用

  • aa_milne_arr = [‘pooh’, ‘rabbit’, ‘piglet’, ‘Christopher’]
  • np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3])
import numpy as np

a1=np.random.choice(5, 3)
a2=np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
a3=np.random.choice(a=5, size=3, replace=False, p=None)
a4=np.random.choice(a=5, size=3, replace=False, p=[0.2, 0.1, 0.3, 0.4, 0.0]) aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher'] a5=np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3]) print("a1:\n",a1,"\n","a2:\n",a2,"\n","a3:\n",a3,"\n","a4:\n",a4,"\n","a5:\n",a5) # a1: # [2 2 2] # a2: # [2 3 3] # a3: # [4 0 1] # a4: # [0 3 2] # a5: # ['pooh' 'rabbit' 'pooh' 'pooh' 'Christopher']