python numpy之np.random的隨機數函數使用介紹

 更新時間:2019年10月06日 22:37:56   投稿:mdxy-dxy   我要評論
這篇文章主要介紹了python numpy之np.random的隨機數函數使用介紹,需要的朋友可以參考下

np.random的隨機數函數(1)

函數 說明
rand(d0,d1,..,dn) 根據d0‐dn創建隨機數數組,浮點數, [0,1),均勻分布
randn(d0,d1,..,dn) 根據d0‐dn創建隨機數數組,標準正態分布
randint(low[,high,shape]) 根據shape創建隨機整數或整數數組,范圍是[low, high)
seed(s) 隨機數種子, s是給定的種子值

np.random.rand

import numpy as np

a = np.random.rand(3, 4, 5)

a
Out[3]: 
array([[[0.28576737, 0.96566496, 0.59411491, 0.47805199, 0.97454449],
    [0.15970049, 0.35184063, 0.66815684, 0.13571458, 0.41168113],
    [0.66737322, 0.91583297, 0.68033204, 0.49083857, 0.33549182],
    [0.52797439, 0.23526146, 0.39731129, 0.26576975, 0.26846021]],

    [[0.46860445, 0.84988491, 0.92614786, 0.76410349, 0.00283208],
    [0.88036955, 0.01402271, 0.59294569, 0.14080713, 0.72076521],
    [0.0537956 , 0.08118672, 0.59281986, 0.60544876, 0.77931621],
    [0.41678215, 0.24321042, 0.25167563, 0.94738625, 0.86642919]],

    [[0.36137271, 0.21672667, 0.85449629, 0.51065516, 0.16990425],
    [0.97507815, 0.78870518, 0.36101021, 0.56538782, 0.56392004],
    [0.93777677, 0.73199966, 0.97342172, 0.42147127, 0.73654324],
    [0.83139234, 0.00221262, 0.51822612, 0.60964223, 0.83029954]]])

np.random.randn

b = np.random.randn(3, 4, 5)

b
Out[5]: 
array([[[ 0.09170952, -0.36083675, -0.18189783, -0.52370155,
     -0.61183783],
    [ 1.05285606, -0.82944771, -0.93438396, 0.32229904,
     -0.85316565],
    [ 1.41103666, -0.32534111, -0.02202953, 1.02101228,
     1.59756695],
    [-0.33896372, 0.42234042, 0.14297587, -0.70335248,
     0.29436318]],

    [[ 0.73454216, 0.35412624, -1.76199508, 1.79502353,
     1.05694614],
    [-0.42403323, -0.36551581, 0.54033378, -0.04914723,
     1.15092556],
    [ 0.48814148, 1.09265266, 0.65504441, -1.04280834,
     0.70437122],
    [ 2.92946803, -1.73066859, -0.30184912, 1.04918753,
     -1.58460681]],

    [[ 1.24923498, -0.65467868, -1.30427044, 1.49415265,
     0.87520623],
    [-0.26425316, -0.89014489, 0.98409579, 1.13291179,
     -0.91343016],
    [-0.71570644, 0.81026219, -0.00906133, 0.90806035,
     -0.914998 ],
    [ 0.22115875, -0.81820313, 0.66359573, -0.1490853 ,
     0.75663096]]])

np.random.randint

c = np.random.randint(100, 200, (3, 4))

c
Out[9]: 
array([[104, 140, 161, 193],
    [134, 147, 126, 120],
    [117, 141, 162, 137]])

numpy.random.randint的詳細用法 - python

函數的作用是,返回一個隨機整型數,范圍從低(包括)到高(不包括),即[low, high)。如果沒有寫參數high的值,則返回[0,low)的值。
numpy.random.randint(low, high=None, size=None, dtype='l')

參數如下:

參數 描述
low: int 生成的數值最低要大于等于low。
(hign = None時,生成的數值要在[0, low)區間內)
high: int (可選) 如果使用這個值,則生成的數值在[low, high)區間。
size: int or tuple of ints(可選) 輸出隨機數的尺寸,比如size=(m * n* k)則輸出同規模即m * n* k個隨機數。默認是None的,僅僅返回滿足要求的單一隨機數。
dtype: dtype(可選): 想要輸出的格式。如int64、int等等

輸出:

返回一個隨機數或隨機數數組

例子

>>> np.random.randint(2, size=10)
array([1, 0, 0, 0, 1, 1, 0, 0, 1, 0])
>>> np.random.randint(1, size=10)
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

>>> np.random.randint(5, size=(2, 4))
array([[4, 0, 2, 1],
       [3, 2, 2, 0]])

>>>np.random.randint(2, high=10, size=(2,3))
array([[6, 8, 7],
       [2, 5, 2]])

np.random.seed
隨機種子生成器,使下一次生成的隨機數為由種子數決定的“特定”的隨機數,如果seed中參數為空,則生成的隨機數“完全”隨機。參考和文檔。

np.random.seed(10)

np.random.randint(100, 200, (3 ,4))
Out[11]: 
array([[109, 115, 164, 128],
    [189, 193, 129, 108],
    [173, 100, 140, 136]])

np.random.seed(10)

np.random.randint(100 ,200, (3, 4))
Out[13]: 
array([[109, 115, 164, 128],
    [189, 193, 129, 108],
    [173, 100, 140, 136]])

np.random的隨機數函數(2)

函數 說明
shuffle(a) 根據數組a的第1軸(也就是最外層的維度)進行隨排列,改變數組x
permutation(a) 根據數組a的第1軸產生一個新的亂序數組,不改變數組x
choice(a[,size,replace,p]) 從一維數組a中以概率p抽取元素,形成size形狀新數組replace表示是否可以重用元素,默認為False

np.random.shuffle

a = np.random.randint(100, 200, (3, 4))

a
Out[15]: 
array([[116, 111, 154, 188],
    [162, 133, 172, 178],
    [149, 151, 154, 177]])

np.random.shuffle(a)

a
Out[17]: 
array([[116, 111, 154, 188],
    [149, 151, 154, 177],
    [162, 133, 172, 178]])

np.random.shuffle(a)

a
Out[19]: 
array([[162, 133, 172, 178],
    [116, 111, 154, 188],
    [149, 151, 154, 177]])

可以看到,a發生了變化,軸。

np.random.permutation

b = np.random.randint(100, 200, (3, 4))

b
Out[21]: 
array([[113, 192, 186, 130],
    [130, 189, 112, 165],
    [131, 157, 136, 127]])

np.random.permutation(b)
Out[22]: 
array([[113, 192, 186, 130],
    [130, 189, 112, 165],
    [131, 157, 136, 127]])

b
Out[24]: 
array([[113, 192, 186, 130],
    [130, 189, 112, 165],
    [131, 157, 136, 127]])

可以看到,b沒有發生改變。

np.random.choice

c = np.random.randint(100, 200, (8,))

c
Out[26]: array([123, 194, 111, 128, 174, 188, 109, 115])

np.random.choice(c, (3, 2))
Out[27]: 
array([[111, 123],
    [109, 115],
    [123, 128]])#默認可以出現重復值

np.random.choice(c, (3, 2), replace=False)
Out[28]: 
array([[188, 111],
    [123, 115],
    [174, 128]])#不允許出現重復值

np.random.choice(c, (3, 2),p=c/np.sum(c))
Out[29]: 
array([[194, 188],
    [109, 111],
    [174, 109]])#指定每個值出現的概率

np.random的隨機數函數(3)

函數 說明
uniform(low,high,size) 產生具有均勻分布的數組,low起始值,high結束值,size形狀
normal(loc,scale,size) 產生具有正態分布的數組,loc均值,scale標準差,size形狀
poisson(lam,size) 產生具有泊松分布的數組,lam隨機事件發生率,size形狀

u = np.random.uniform(0, 10, (3, 4))

u
Out[31]: 
array([[9.83020867, 4.67403279, 8.75744495, 2.96068699],
    [1.31291053, 8.42817933, 6.59036304, 5.95439605],
    [4.36353698, 3.56250327, 5.87130925, 1.49471337]])

n = np.random.normal(10, 5, (3, 4))

n
Out[33]: 
array([[ 8.17771928, 4.17423265, 3.28465058, 17.2669643 ],
    [10.00584724, 9.94039808, 13.57941572, 4.07115727],
    [ 6.81836048, 6.94593078, 3.40304302, 7.19135792]])

p = np.random.poisson(2.0, (3, 4))

p
Out[35]: 
array([[0, 2, 2, 1],
    [2, 0, 1, 3],
    [4, 2, 0, 3]])

數據分析師分析問題第一步,必須明確這是不是一個問題!!!

相關文章

  • 計算機二級python學習教程(2) python語言基本語法元素

    計算機二級python學習教程(2) python語言基本語法元素

    這篇文章主要為大家詳細介紹了計算機二級python學習教程的第2篇,Python語言基本語法元素,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 利用Python求陰影部分的面積實例代碼

    利用Python求陰影部分的面積實例代碼

    這篇文章主要給大家介紹了關于利用Python求陰影部分面積的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用python具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-12-12
  • Python 異常的捕獲、異常的傳遞與主動拋出異常操作示例

    Python 異常的捕獲、異常的傳遞與主動拋出異常操作示例

    這篇文章主要介紹了Python 異常的捕獲、異常的傳遞與主動拋出異常操作,結合實例形式詳細分析了Python針對異常捕獲、傳遞、處理等常見操作技巧,需要的朋友可以參考下
    2019-09-09
  • 從零學Python之引用和類屬性的初步理解

    從零學Python之引用和類屬性的初步理解

    Python是一種解釋型、面向對象、動態數據類型的高級程序設計語言。自從20世紀90年代初Python語言誕生至今,它逐漸被廣泛應用于處理系統管理任務和Web編程。Python已經成為最受歡迎的程序設計語言之一。2011年1月,它被TIOBE編程語言排行榜評為2010年度語言。自從2004年以后,python的使用率是呈線性增長。
    2014-05-05
  • 如何使用pyinstaller打包32位的exe程序

    如何使用pyinstaller打包32位的exe程序

    這篇文章主要介紹了如何使用pyinstaller打包32位的exe程序,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • python 3.6.4 安裝配置方法圖文教程

    python 3.6.4 安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了python 3.6.4 安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • python 中if else 語句的作用及示例代碼

    python 中if else 語句的作用及示例代碼

    python中的if-else語句是一個判斷性語句,既然是判斷就要有條件以及滿足條件與不滿足的情況,一下將講解一些if-else語句的知識,需要的朋友參考下吧
    2018-03-03
  • Python實現簡單生成驗證碼功能【基于random模塊】

    Python實現簡單生成驗證碼功能【基于random模塊】

    這篇文章主要介紹了Python實現簡單生成驗證碼功能,結合實例形式分析了Python基于random模塊生成隨機字符串的相關操作技巧,需要的朋友可以參考下
    2018-02-02
  • Django使用模板后無法找到靜態資源文件問題解決

    Django使用模板后無法找到靜態資源文件問題解決

    這篇文章主要介紹了Django使用模板后無法找到靜態資源文件問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • Python創建一個空的dataframe,并循環賦值的方法

    Python創建一個空的dataframe,并循環賦值的方法

    今天小編就為大家分享一篇Python創建一個空的dataframe,并循環賦值的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11

最新評論

北京pk赛车人工计划软件手机版