当前位置 主页 > 服务器问题 > Linux/apache问题 >

    python 多维高斯分布数据生成方式

    栏目:Linux/apache问题 时间:2019-12-10 16:10

    我就废话不多说了,直接上代码吧!

    import numpy as np
    import matplotlib.pyplot as plt
    
    
    def gen_clusters():
      mean1 = [0,0]
      cov1 = [[1,0],[0,10]]
      data = np.random.multivariate_normal(mean1,cov1,100)
      
      mean2 = [10,10]
      cov2 = [[10,0],[0,1]]
      data = np.append(data,
               np.random.multivariate_normal(mean2,cov2,100),
               0)
      
      mean3 = [10,0]
      cov3 = [[3,0],[0,4]]
      data = np.append(data,
               np.random.multivariate_normal(mean3,cov3,100),
               0)
      
      return np.round(data,4)
    
    def save_data(data,filename):
      with open(filename,'w') as file:
        for i in range(data.shape[0]):
          file.write(str(data[i,0])+','+str(data[i,1])+'\n')
          
    def load_data(filename):
      data = []
      with open(filename,'r') as file:
        for line in file.readlines():
          data.append([ float(i) for i in line.split(',')])
      return np.array(data)
    
    def show_scatter(data):
      x,y = data.T
      plt.scatter(x,y)
      plt.axis()
      plt.title("scatter")
      plt.xlabel("x")
      plt.ylabel("y")
      
    data = gen_clusters()
    save_data(data,'3clusters.txt')
    d = load_data('3clusters.txt')
    show_scatter(d)
    

    以上这篇python 多维高斯分布数据生成方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持IIS7站长之家。