| 
 | 
 
 
1. 函數簡介 
numpy中的np.random.choice(arr,size=None,replace=True,p=None),通過給定的一維數組數據產生隨機採樣。 
 
參數: 
 
arr: 一維數組或int型變量。若是數組就按照數組中的數據進行採樣,若是int型變量,相當於np.arange(a)。 
size:int型變量或者 tuple of ints 決定輸出的shape。如果給定的是(m,n,k),那麼m*n*k個採樣點將會被採樣。 
replace:採樣是否放回,即決定採樣中是否有重複值 
p:一維數組,對應arr數組中每個採樣點的概率分佈,即每個採樣點以多大的概率被採樣。沒有給出則使用標準分佈,每個採樣點等概率被採樣。 
返回值: 
 
samples:單一數值或ndarray 
 
  
 
2. 使用例子 
- import numpy as np
 
  
- #從0-4中等概率採樣3個數 可以重複 
 
 - print(np.random.choice(5,3))
 
 - #從0-4中等概率採樣3個數 不可以重複
 
 - print(np.random.choice(5,3,replace=False))
 
 - #注意不放回採樣時 size不能比arr數組大
 
 - #print(np.random.choice(5,6,replace=False))
 
 - #從0-4中以指定概率採樣3個數 
 
 - print(np.random.choice(5,3,p=[0.1,0.1,0.1,0.3,0.4]))
 
 - #從0-4中以指定概率採樣3個數  不重複
 
 - print(np.random.choice(5,3,p=[0.1,0.1,0.1,0.3,0.4],replace=False))
 
  複製代碼 
Python  random.choice 
 
 
 
 
- #也可以採樣得到一個多維數組 用size指定多維數組大小 默認可重複 等概率
 
 - print(np.random.choice(5,(2,2)))
 
 - print("---------------")
 
 - print(np.random.choice(10,(2,2,3)))
 
  複製代碼 
Python  random.choice 
 
 
 
 
  
 
- #size=1時 返回一個包含一個採樣點的一維數組
 
 - print(np.random.choice(5,1))
 
 - #size爲默認值時 返回一個數值
 
 - print(np.random.choice(5))
 
 - #size=0 返回一個空數組
 
 - print(np.random.choice(5,0))
 
  複製代碼 
Python  random.choice 
 
 
 
 
- #arr也可以是某個一維數組或列表
 
 - print(np.random.choice([0,100,44,1,55,11],3))
 
 - #一維數組或列表也可以是任意類型 不一定爲整型
 
 - print(np.random.choice(['alice','bob','dancy','baby'],2,replace=False,p=[0.3,0.3,0.2,0.2]))
 
  複製代碼 
Python  random.choice 
 
 
 
- #實際使用時 一般先創建一個mask 然後對數據進行採樣
 
 - length = len(data)
 
 - mask = np.random.choice(length,size)
 
 - data1 = data[mask]
 
  複製代碼 
文章出處 
 |   
 
 
 
 |