|
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]
複製代碼
文章出處
|
|