TShopping

 找回密碼
 註冊
搜索
查看: 1127|回復: 0
打印 上一主題 下一主題

[教學] Python np.random.choice()函數用法

[複製鏈接]
跳轉到指定樓層
1#
發表於 2021-6-10 22:34:26 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
 
Push to Facebook
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. 使用例子
  1. import numpy as np

  2. #從0-4中等概率採樣3個數 可以重複
  3. print(np.random.choice(5,3))
  4. #從0-4中等概率採樣3個數 不可以重複
  5. print(np.random.choice(5,3,replace=False))
  6. #注意不放回採樣時 size不能比arr數組大
  7. #print(np.random.choice(5,6,replace=False))
  8. #從0-4中以指定概率採樣3個數
  9. print(np.random.choice(5,3,p=[0.1,0.1,0.1,0.3,0.4]))
  10. #從0-4中以指定概率採樣3個數  不重複
  11. print(np.random.choice(5,3,p=[0.1,0.1,0.1,0.3,0.4],replace=False))
複製代碼



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





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



  1. #arr也可以是某個一維數組或列表
  2. print(np.random.choice([0,100,44,1,55,11],3))
  3. #一維數組或列表也可以是任意類型 不一定爲整型
  4. print(np.random.choice(['alice','bob','dancy','baby'],2,replace=False,p=[0.3,0.3,0.2,0.2]))
複製代碼


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

文章出處

 

臉書網友討論
*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-4-25 15:34 , Processed in 0.059938 second(s), 25 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表