在numpy中生成隨機數的函式和matlab有很多的相似性,可以以矩陣為基本單位來生成各種不同的隨機數,下面是通過random函式中的normal函式來生成服從正態分佈的隨機數
import numpy as np
from numpy.linalg import cholesky
import matplotlib.pyplot as plt
sampleno = 1000;
# 一維正態分佈
# 下面三種方式是等效的
mu = 3
sigma = 0.1
np.random.seed(0)
s = np.random.normal(mu, sigma, sampleno )
plt.subplot(141)
plt.hist(s, 30, normed=true)
np.random.seed(0)
s = sigma * np.random.randn(sampleno ) + mu
plt.subplot(142)
plt.hist(s, 30, normed=true)
np.random.seed(0)
s = sigma * np.random.standard_normal(sampleno ) + mu
plt.subplot(143)
plt.hist(s, 30, normed=true)
# 二維正態分佈
mu = np.array([[1, 5]])
sigma = np.array([[1, 0.5], [1.5, 3]])
r = cholesky(sigma)
s = np.dot(np.random.randn(sampleno, 2), r) + mu
plt.subplot(144)
# 注意繪製的是散點圖,而不是直方圖
plt.plot(s[:,0],s[:,1],'+')
plt.show()
漫談正態分佈的生成
本文作者簡介 王夜笙,就讀於鄭州大學資訊工程學院,感興趣的方向為逆向工程和機器學習,長期從事資料抓取工作 長期與反爬蟲技術作鬥爭 涉獵較廣 技藝不精 詳情請見我的個人部落格 感謝怡軒同學的悉心指導 之前拜讀了靳志輝 rickjin 老師寫的 正態分佈的前世今生 一直對正態分佈懷著一顆敬畏之心,剛好最...
Python隨機生成多維正態分佈
本文採用python庫numpy生成隨機正態分佈。其中均值和方差均使用偽隨機生成方式。import numpy as np 使用np.eye 2 生成單位矩陣,然後乘以乙個隨機生成得均勻分布值組成單位矩陣得值 x0 np.random.multivariate normal np.random.un...
Python numpy生成正態分佈的平均數
正態曲線呈鐘型,兩頭低,中間高,左右對稱因其曲線呈鐘形,因此人們又經常稱之為鐘形曲線。若隨機變數x服從乙個數學期望為 方差為 2的正態分佈,記為n 2 其概率密度函式為正態分佈的期望值 決定了其位置,其標準差 決定了分布的幅度。當 0,1時的正態分佈是標準正態分佈。生成隨機數 numpy下的rand...