當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python dask.array.random.choice用法及代碼示例


用法:

dask.array.random.choice(a, size=None, replace=True, p=None, chunks='auto')

從給定的一維數組生成隨機樣本

此文檔字符串是從 numpy.random.mtrand.RandomState.choice 複製而來的。

可能存在與 Dask 版本的一些不一致之處。

注意

新代碼應改為使用default_rng() 實例的choice 方法;請參閱快速入門。

參數

a一維array-like或整數

如果是 ndarray,則從其元素生成隨機樣本。如果是 int,則生成隨機樣本,就好像它是 np.arange(a)

size整數或整數元組,可選

輸出形狀。例如,如果給定的形狀是 (m, n, k) ,則繪製 m * n * k 樣本。默認為無,在這種情況下返回單個值。

replace布爾值,可選

樣品是否有更換。默認值為 True,這意味著可以多次選擇 a 的值。

p一維array-like,可選

與 a 中的每個條目相關聯的概率。如果未給出,則示例假定 a 中所有條目的均勻分布。

返回

samples單項或 ndarray

生成的隨機樣本

拋出

ValueError

如果 a 是 int 且小於零,如果 a 或 p 不是一維的,如果 a 是大小為 0 的 array-like,如果 p 不是概率向量,如果 a 和 p 具有不同的長度,或者如果replace=False 並且樣本大小大於總體大小

注意

通過p 設置用戶指定的概率使用比默認設置更通用但效率更低的采樣器。即使 p 的每個元素都是 1 /len(a),通用采樣器也會產生與優化采樣器不同的樣本。

使用此函數無法從二維數組中采樣隨機行,但可以使用 Generator.choice 通過其 axis 關鍵字進行采樣。

例子

從大小為 3 的 np.arange(5) 生成均勻隨機樣本:

>>> np.random.choice(5, 3)  
array([0, 3, 4]) # random
>>> #This is equivalent to np.random.randint(0,5,3)

從大小為 3 的 np.arange(5) 生成非均勻隨機樣本:

>>> np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])  
array([3, 3, 0]) # random

從大小為 3 的 np.arange(5) 生成均勻隨機樣本,無需替換:

>>> np.random.choice(5, 3, replace=False)  
array([3,1,0]) # random
>>> #This is equivalent to np.random.permutation(np.arange(5))[:3]

從大小為 3 的 np.arange(5) 生成非均勻隨機樣本,無需替換:

>>> np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0])  
array([2, 3, 0]) # random

以上任何內容都可以用任意 array-like 重複,而不僅僅是整數。例如:

>>> aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher']  
>>> np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3])  
array(['pooh', 'pooh', 'pooh', 'Christopher', 'piglet'], # random
      dtype='<U11')

相關用法


注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask.array.random.choice。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。