用Python生成正态分布随机数组

几个函数用来生成、存储、保留生态分布随机数组

import numpy as np
#导入numpy矩阵计算包
import matplotlib.pyplot as plt
#绘图包

global i
i = 1
#声明并初始化全局变量

def genNormalDistributionData(mean, cov, num):
    global i
    #指明使用全局变量i,i用来表示第几次调用该函数
    desc = np.zeros(num, dtype=np.double)+i*1000+num
	#随意生成的数字,用作随机数的id
    i += 1
    data = np.insert(np.random.multivariate_normal(
        mean, cov, num), 2, values=desc, axis=1)
    return np.round(data, 2)
    #生成随机数组并在尾部拼接id列
	#multivariate_normal()函数第一个参数mean是多维正态分布期望的数组,cov是两个维度的协方差矩阵,最后一个是要生成随机数的个数

def saveData(data):
    np.savetxt('data.csv', data, delimiter=',')
    #存储数据

def readData():
    return np.loadtxt('data.csv', delimiter=',')
    %读取数据

if __name__ == "__main__":
    d1 = genNormalDistributionData([2, 2], [[1, 0], [0, 1]], 5)
    d2 = genNormalDistributionData([-2, 2], [[1, 0], [0, 1]], 5)
    d = np.concatenate((d1, d2), axis=0)
    saveData(d)
    plt.scatter(d1[:, 0], d1[:, 1],  marker='o', c='r')
    plt.scatter(d2[:, 0], d2[:, 1],  marker='^', c='b')
    plt.show()

你可能感兴趣的:(python,随机数,numpy)