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

yipeiwu_com7年前Python基础

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

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 多维高斯分布数据生成方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python编程入门之Hello World的三种实现方式

本文实例讲述了Python编程入门之Hello World的三种实现方式。分享给大家供大家参考,具体如下: 第一种方式: $python >>>print('hel...

python变量赋值方法(可变与不可变)

python变量赋值方法(可变与不可变)

python中不存在所谓的传值调用,一切传递的都是对象的引用,也可以认为是传址。 一、可变对象和不可变对象 Python在heap中分配的对象分成两类:可变对象和不可变对象。所谓可变对象...

python代码过长的换行方法

python代码换行就是每行后面加个 \ 举个栗子: time = "2017" print "one" + "," \ + "two" \ + ",three" + \ "," +...

Python中的函数式编程:不可变的数据结构

让我们首先考虑正方形和长方形。如果我们认为在接口方面,忽略了实现细节,方块是否是矩形的子类型? 子类型的定义取决于Liskov代换原理。为了成为一个子类型,它必须能够完成超级类型所做的一...

python3使用pandas获取股票数据的方法

python3使用pandas获取股票数据的方法

如下所示: from pandas_datareader import data, wb from datetime import datetime import matplotli...