numpy 生成正態分佈

2021-08-07 09:10:05 字數 990 閱讀 4960

在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...