随机正态分布
本文采用Python库numpy生成随机正态分布。其中均值和方差均使用伪随机生成方式。
代码如下
import numpy as np
#使用np.eye(2)生成单位矩阵,然后乘以一个随机生成得均匀分布值组成单位矩阵得值
x0 = np.random.multivariate_normal(np.random.uniform(-50,50,2), np.eye(2)*np.random.uniform(8,30,2), 1000)
x1 = np.random.multivariate_normal(np.random.uniform(-50,50,2), np.eye(2)*np.random.uniform(2,10,2), 1000)
x=np.append(x0,x1,axis=0)
x2 = np.random.multivariate_normal(np.random.uniform(-50,50,2), np.eye(2)*np.random.uniform(5,20,2), 1000)
#numpy中append得用法
x=np.append(x,x2,axis=0)
#运行结果
print(x,type(x))
[[-15.22115145 3.83424832]
[-24.63885883 -0.71833501]
[-21.02391513 1.14661153]
...
[ -1.49298452 48.85591815]
[ -1.90203174 45.53668563]
[ 1.14156577 47.67014148]] <class 'numpy.ndarray'>
#将生成得图可视化
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
plt.scatter(x0[:,0],x0[:,1])
plt.scatter(x1[:,0],x1[:,1])
plt.show()