Python雜談 | (9) np.random.choice()函數用法

目錄

 

1. 函數簡介

2. 使用例子


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))

#也可以採樣得到一個多維數組 用size指定多維數組大小 默認可重複 等概率
print(np.random.choice(5,(2,2)))
print("---------------")
print(np.random.choice(10,(2,2,3)))

 

#size=1時 返回一個包含一個採樣點的一維數組
print(np.random.choice(5,1))
#size爲默認值時 返回一個數值
print(np.random.choice(5))
#size=0 返回一個空數組
print(np.random.choice(5,0))

#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]))

 

#實際使用時 一般先創建一個mask 然後對數據進行採樣
length = len(data)
mask = np.random.choice(length,size)
data1 = data[mask]

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章