日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【python-numpy】工具包中np.random.choice()的用法详解及其参考

發布時間:2024/9/27 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【python-numpy】工具包中np.random.choice()的用法详解及其参考 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文為CSDN博主「ImwaterP」的原創文章,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/ImwaterP/article/details/96282230

處理數據時經常需要從數組中隨機抽取元素,這時候就需要用到np.random.choice()。然而choice用法的官方解釋并不詳細,尤其是對replace參數的解釋,例子也不是很全面。因此經過反復實驗,我較為詳細的總結出了他的用法,并給出了較為詳細的使用代碼例子。

官方解釋:https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.choice.html

下面是其作者自己的總結:

#numpy.random.choice(a, size=None, replace=True, p=None) #從a(只要是ndarray都可以,但必須是一維的)中隨機抽取數字,并組成指定大小(size)的數組 #replace:True表示可以取相同數字,False表示不可以取相同數字 #數組p:與數組a相對應,表示取數組a中每個元素的概率,默認為選取每個元素的概率相同。

除了numpy中的數組,python內建的**list(列表)、tuple(元組)**也可以使用。

詳解及代碼舉例

  • 產生隨機數
>>>np.random.choice(5)#從[0, 5)中隨機輸出一個隨機數 #相當于np.random.randint(0, 5)2>>>np.random.choice(5, 3)#在[0, 5)內輸出五個數字并組成一維數組(ndarray) #相當于np.random.randint(0, 5, 3)array([1, 4, 1])
  • 從數組、列表或元組中隨機抽取
    注意:不管是什么,它必須是一維的!
L = [1, 2, 3, 4, 5]#list列表 T = (2, 4, 6, 2)#tuple元組 A = np.array([4, 2, 1])#numpy,array數組,必須是一維的 A0 = np.arange(10).reshape(2, 5)#二維數組會報錯>>>np.random.choice(L, 5)array([3, 5, 2, 1, 5])>>>np.random.choice(T, 5)array([2, 2, 2, 4, 2])>>>np.random.choice(A, 5)array([1, 4, 2, 2, 1])>>>np.random.choice(A0, 5)#如果是二維數組,會報錯ValueError: 'a' must be 1-dimensional
  • 參數replace
    用來設置是否可以取相同元素:
    True表示可以取相同數字;
    False表示不可以取相同數字。
    默認是True
np.random.choice(5, 6, replace=True)#可以看到有相同元素array([3, 4, 1, 1, 0, 3]) np.random.choice(5, 6, replace=False)#會報錯,因為五個數字中取六個,不可能不取到重復的數字ValueError: Cannot take a larger sample than population when 'replace=False'
  • 參數p
    p實際是個數組,大小(size)應該與指定的a相同,用來規定選取a中每個元素的概率,默認為概率相同
>>> 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'], dtype='|S11') #可以看到,‘pooh’被選取的概率明顯比其他幾個高很多 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的【python-numpy】工具包中np.random.choice()的用法详解及其参考的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。