Python numpy隨機數生成和數學統計運算[轉]
隨機數生成
如果要做模擬,經常需要生成大量的隨機數,雖然Python中有內建的隨機數生成函式,但效率遠遜於Nympy。Numpy中的隨機數函式在random模組中,以下就是一些常用的隨機數生成方法。
1.seed:設定隨機數生成器種子
示例:np.random.seed(123)
2.rand:生成(0,1)區間上的均勻分佈隨機數
語法:rand(d0, d1, …, dn)
引數:d0,d1,…,dn指生成資料的形狀
示例:np.random.rand(2,3)
3.randn:生成標準正態分佈的隨機數
語法:randn(d0, d1, …, dn)
引數:d0,d1,…dn指生成資料的形狀
示例:np.random.randn(2,2)
4.normal: 生成正態分佈
語法:normal(loc=0.0, scale=1.0, size=None)
引數:loc設定均值,scale設定標準差,size設定生成資料的形狀,可以是元組或單值。預設標準正態分佈。
示例:np.random.normal(1,2,(2,3))
5.multivariate_normal: 生成多元正態分佈
語法:multivariate_normal(mean, cov[, size])
引數:mean設定均值向量,cov設定協方差矩陣,size設定生成資料的形狀
示例:
mean = (1 ,2)
cov = [[1,0],[1,0]]
np.random.multivariate_normal(mean,cov,(3,3))
6.uniform:生成均勻分佈
語法:uniform(low=0.0, high=1.0, size=None)
引數:low設定均勻分佈的區間下界,high設定均勻分佈的區間上界,size設定生成資料的形狀,可以是元組或單值。預設生成0-1區間的均勻分佈
示例:np.random.uniform(1,10,10)
7.chisquare: 生成卡方分佈的隨機數
語法:chisquare(df, size=None)
引數:df設定自由度,size設定生成資料的形狀
示例:np.random.chisquare(7,(2,3))
8.gamma: 生成Gamma分佈的隨機數
語法:gamma(shape, scale=1.0, size=None)
引數:shape設定分佈的形狀引數,scale設定分佈的尺度引數,size設定生成資料的形狀。
示例:np.random.gamma(1,1,5)
9.binomial:生成二項分佈的隨機數
語法:binomial(n, p, size=None)
引數:n設定試驗次數,p設定成功概率,size設定生成資料的形狀
示例:np.random.binomial(10,0.2,5)
10.randint: 返回給定上下界範圍內的隨機整數
語法: randint(low, high=None, size=None)
引數:low設定下界,high設定上界,size設定生成資料的形狀。返回的區間是半閉區間 [low , high )
示例:np.random.randint(1,10,5)
11.shuffle: 對一個序列進行隨機排列
語法:shuffle(x)
引數:x指列表或陣列
示例:
x = np.arange(10)
np.random.shuffle(x)
12.permutation:返回一個序列的隨機排列或返回一個隨機排列的範圍
語法:permutation(x)
引數:如果x是一個標量數值,則返回對np.arange(x)的隨機排列結果;如果x是一個序列,則複製序列並對其進行隨機排序,原序列不變
示例:
np.random.permutation(x)
np.random.permutation(10)
numpy.random還可以生成很多其他分佈的隨機數,詳細請查閱參考資料2。
統計方法
Numpy可以利用統計函式或數學函式對整個陣列或某個軸向上的資料進行運算,類似於R中的apply家族,只是apply中是對行或列運算,而numpy中是對軸運算。
基本的統計方法:
1.sum:對陣列或某個軸向上的資料進行求和
語法:np.sum(a, axis=None, dtype=None, out=None, keepdims=False)
引數:a指陣列,axis設定軸方向,如果不設定則對全部資料求和,可以是單值,也可以是元組
示例:
np.sum([[0, 1], [0, 5]], axis=0)
np.sum([[0, 1], [0, 5]], axis=1)
np.sum([[0, 1], [0, 5]])
2.mean:算術平均數
語法,引數設定同上
示例:
np.mean([[0, 1], [0, 5]], axis=0)
np.mean([[0, 1], [0, 5]], axis=1)
np.mean([[0, 1], [0, 5]])
3.std. var 計算標準差,方差
語法,引數設定同上
示例:
np.std([[0, 1], [0, 5]], axis=0)
np.std([[0, 1], [0, 5]], axis=1)
np.std([[0, 1], [0, 5]])
4.min,max 求最小值,最大值
語法,引數設定同上
示例:
np.min([[0, 1], [0, 5]], axis=0)
np.min([[0, 1], [0, 5]], axis=1)
np.min([[0, 1], [0, 5]])
5.argmin,argmax 求最大元素和最小元素的索引
語法:np.argmin(a, axis=None)
引數:a指陣列,axis設定軸
示例:
np.argmin([[0, 1], [2, 5]])
np.argmin([[0, 1], [2, 5]],axis = 0)
np.argmin([[0, 1], [2, 5]],axis = 1)
6.cumsum. Cumprod 計算所有元素的累積和和累計積
語法:np.cumsum(a, axis=None, dtype=None, out=None)
np.cumprod(a, axis=None, dtype=None, out=None)
引數: a指陣列,axis設定軸方向
示例:
np.cumsum([[1,2,3],[4,5,6]])
np.cumsum([[1,2,3],[4,5,6]],axis = 0)
陣列的集合運算
Numpy提供了一些用於一維陣列的基本集合運算,涉及集合的交併差,這部分函式與R的dplyr包中相同功能的函式類似,比如set系列函式
相關推薦
Python numpy隨機數生成和數學統計運算[轉]
隨機數生成 如果要做模擬,經常需要生成大量的隨機數,雖然Python中有內建的隨機數生成函式,但效率遠遜於Nympy。Numpy中的隨機數函式在random模組中,以下就是一些常用的隨機數生成方法。 1.seed:設定隨機數生成器種子 示例:np.rand
python---Numpy模塊中線性代數運算,統計和數學函數
逆矩陣 python 0.11 進入 2.6 pandas 1.0 行列式 arr NUMPY告一段落,接下來,進入pandas. import numpy as np # Numpy 線性代數運算 # Numpy 統計和數學函數 print(‘====
python+numpy 隨機數的生成,正態分佈,0-1分佈,均勻分佈及隨機數種子
#! usr/bin/env python # coding: utf-8 # 使用numpy中的隨機函式 學習筆記 # 2018年06月04日11:38:43 北京昌平 import numpy.matlib import numpy as np # 說明,每塊程
python之隨機數生成方法匯總
random 隨機選擇 amp enc 參數 選擇 不改變 choice shuf python裏面生成隨機數的方法主要集中在numpy模塊的random子模塊中:import numpy as np(1)生成一個隨機浮點數,範圍是0-1:np.random.random(
python numpy : random.rand 和 random.random 的區別
相同點:兩個函式都是在 [0, 1) 的均勻分佈中產生隨機數。 不同點:引數傳遞不同。random.random( )接收一個單獨的元組,而random.rand( )接收分開的引數 例如: 要生成3行5列的陣列,你可以 np.random.rand(3, 5) 或者 np.
【python】numpy.datetime64( ) 時間和 datetime.datetime 互轉
首先定義幾個時間變數datetime、Timestamp、numpy.datetime64: import datetime import numpy as np import pandas as p
python numpy基礎 陣列和向量計算
在python 中有時候我們用陣列操作資料可以極大的提升資料的處理效率, 類似於R的向量化操作,使得資料的操作趨於簡單化,在python 中是使用numpy模組可以進行陣列和向量計算。 下面來看下簡單的例子 import n
python numpy 如何獲取和更改陣列(array)的形狀、維數-shape&reshape
主要用到shape, reshape函式 我們先搞清np.ndarrayd陣列的特點 import numpy as np ex = np.arange(0,12,1) ex # 括號裡的0可以省
python numpy矩陣切片和字串切片
建立4個6*6的矩陣,分別是矩陣值全為0,矩陣值全為1,矩陣值全為指定值,矩陣值隨機; import numpy as np x1 = np.zeros((6,6)) x2 = np.ones((6
python 文字單詞提取和詞頻統計
這些對文字的操作經常用到, 那我就總結一下。 陸續補充。。。 操作: strip_html(cls, text) 去除html標籤 separate_words(cls, text, min_
python---Numpy模塊中數組運算的常用代碼示例
元素訪問 數組大小 and 判斷 array 調整 轉換 att tostring import numpy as np # Numpy數組操作 print(‘========訪問列表元素, 切片,賦值===========‘) arr = np.array(
python 字典、列表和json物件互轉
json.dumps(): 對json進行編碼,對應PHP的json_encode()json.loads(): 對json進行解碼,對應php的json_decode() 將python字典轉換為json物件 data = { 'id' : 1,
Python-Numpy多維陣列 -- 算數運算, 統計函式
一、Numpy - 算數運算 1.用於執行算術運算(如add(),subtract(),multiply()和divide())的輸入陣列必須具有相同的形狀或符合陣列廣播規則。 demo import numpy as np a = np.arange(9, dtype = np
python numpy中隨機數生成包random
1. numpy.random.randn: 從標準正太分佈中返回一個樣本值 原型: numpy.random.randn( d0,d1....,dn ) 引數: d0,d1.....dn
Python隨機數生成方法
color randint cde int syn amp 應用 comm 字符串 假設你對在Python生成隨機數與random模塊中最經常使用的幾個函數的關系與不懂之處。以下的文章就是對Python生成隨機數與random模塊中最經常使用的幾個函數的關系,希望你會有
python開發基礎:三元運算&生成式&成員運算&解壓法&隊列堆棧&數據類型轉換
rate range usr 出棧 遍歷 num print 元組 not in 一,三元運算&生成式&成員運算&解壓法&隊列堆棧&數據類型轉換,都在一個code裏 1 #!/usr/bin/env python 2 #_*
Python基礎2 編碼和邏輯運算符
文字 cde 升級 pri 漢字 包含 輸入 成功 例如 編碼: AscII碼 :標準ASCII碼是采用7位二進制碼來編碼的,當用1個字節(8位二進制碼)來表示ASCII碼時,就在最高位添加1個0。 一個英文字母占一個字節 8位(bit)==一個字節(byte)
人生苦短,我學python之python+selenium 隨機生成手機號碼和身份證
count read delta selenium 隨機 urn etime 手機號 身份證號 # coding:utf-8import osimport randomimport randomimport stringimport timefrom datetime im
命令行下查看python和numpy的版本和安裝位置
bsp 命令行 version sys _file__ 路徑 版本 sep cut 命令行下查看python和numpy的版本和安裝位置 1、查看python版本 方法一: python -V 註意:‘-V‘中‘V&rsq
python使用xlsxwriter模塊生成和處理Excel文檔
xlsxwriterxlsxwriter使用實例--網站業務流量報表安裝模塊wget https://files.pythonhosted.org/packages/04/c9/d5a8b02561a32bfcbec767a7d094c1ce54874eba9bc6bbaa58dd9ad523e7/XlsxW