python numpy 生成一個服從多元正態分布的數組


標准正態分布的概率密度公式

正態分布概率密度公式

多元正態分布的概率密度公式

上式為 x 服從 k 元正態分布,x 為 k 維向量;|Σ| 代表協方差矩陣的行列式。

二維正態分布概率密度函數為鍾形曲面,等高線是橢圓線族,並且二維正態分布的兩個邊緣分布都是一維正態分布,如圖

 

numpy生成一個服從多元正態分布的數組

multivariate_normal(mean, cov, size=None, check_valid=None, tol=None) 

各參數含義:

  • mean:均值,維度為1,必選參數;
  • cov:協方差矩陣,必選參數;
  • size: 指定生成矩陣的維度,若size=(1, 1, 2),則輸出的矩陣的 shape 即形狀為 1X1X2XN(N為mean的長度);
  • check_valid:可取值 warn,raise以及ignore;
  • tol:檢查協方差矩陣奇異值時的公差,float類型。

示例:

import numpy as np
import matplotlib.pyplot as plt

mean = (1, 1)
cov = np.array([[0.1, 0], [0, 1]])
x = np.random.multivariate_normal(mean, cov, (500,), 'raise')   # nx2

plt.scatter(x[:, 0], x[:, 1])
plt.xlim(-3, 5)
plt.ylim(-3, 5)
plt.show()

運行結果:

 

參考資料

[1] multivariate_normal 多元正態分布

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM