高斯分布python
时间: 2023-08-20 10:12:36 浏览: 107
高斯分布是一种常见的概率分布,也被称为正态分布。在Python中,我们可以使用numpy和scipy库来生成和可视化高斯分布。
要生成一个指定平均值和标准差的高斯分布,可以使用numpy的random模块的normal函数。例如,下面的代码生成一个大小为2x3的随机正态分布,平均值为1,标准差为2:
```python
from numpy import random
x = random.normal(loc=1, scale=2, size=(2, 3))
print(x)
```
[1]
要可视化高斯分布,可以使用matplotlib库。下面的代码演示了如何绘制一个二元高斯分布的方差比较的三维图:
```python
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
x1, x2 = np.mgrid[-5:5:51j, -5:5:51j]
x = np.stack((x1, x2), axis=2)
plt.figure(figsize=(9, 8), facecolor='w')
sigma = (np.identity(2), np.diag((3,3)), np.diag((2,5)), np.array(((2,1), (1,5))))
for i in np.arange(4):
ax = plt.subplot(2, 2, i+1, projection='3d')
norm = stats.multivariate_normal((0, 0), sigma[i])
y = norm.pdf(x)
ax.plot_surface(x1, x2, y, cmap=cm.Accent, rstride=1, cstride=1, alpha=0.9, lw=0.3, edgecolor='#303030')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.suptitle('二元高斯分布方差比较', fontsize=18)
plt.tight_layout(1.5)
plt.show()
```
[2]
另外,如果只是想简单地绘制高斯分布的概率密度函数曲线,可以使用seaborn库的distplot函数。下面的代码演示了如何绘制一个随机样本的高斯分布曲线:
```python
from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns
sns.distplot(random.normal(size=1000), hist=False)
plt.show()
```
[3]
希望这些代码能帮助到你理解和使用高斯分布在Python中的应用。
阅读全文