np.random.choice方法
阿新 • • 發佈:2018-11-12
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']