【小白学机器学习41】如何从正态分布的总体中去抽样? 获得指定正态分布的样本的2种方法
目录
1 目标:使用2种方法,去从正态分布的总体中去抽样,获得样本
1.1 step1: 首先,逻辑上需要先有符合正态分布的总体population
1.2 从总体中取得样本,模拟抽样的过程
2 从正态分布抽样的方法1
3 从正态分布抽样的方法2
4 完整代码
1 目标:使用2种方法,去从正态分布的总体中去抽样,获得样本
import numpy as np
import pandas as pd
import scipy as sp
1.1 step1: 首先,逻辑上需要先有符合正态分布的总体population
- 都需要先生成一个 符合正态分布的 “总体population”
- 我们设置的总体
- 可以是无限的,或者是有限但是数量较大
- 但是必须设置的是,总体的参数,mean=? std=?
- np.random.normal(loc=0, scale=1, size=1000)
- sp.stats.norm.rvs(loc=0,scale=1,size=10)
1.2 从总体中取得样本,模拟抽样的过程
- np.random.choice(array1,size=10,replace=False)
- sp.stats.norm.rvs(loc=0,scale=1,size=10)
2 从正态分布抽样的方法1
- # 先用np.random.normal一个正态分布的随机数组 ,然后再用np.random.choice()去抽样
- array1=np.random.normal(loc=0, scale=1, size=1000)
- array2=np.random.choice(array1,size=10,replace=False)
3 从正态分布抽样的方法2
- # 直接使用sp.stats.norm.rvs() 从正态分布的总体中去生成样本,抽样
- array3=sp.stats.norm.rvs(loc=0,scale=1,size=10)
4 完整代码
import numpy as np
import pandas as pd
import scipy as sp
from matplotlib import pyplot as plt
import seaborn as sns
%precision 3
# 从正态分布抽样的方法1
# 先用np.random.normal一个正态分布的随机数组 ,然后再用np.random.choice()去抽样
np.random.seed(100) #设置确定的随机种子,保证每次随机的结果都相同
array1=np.random.normal(loc=0, scale=1, size=1000)
array2=np.random.choice(array1,size=10,replace=False)
print(array2)
print(np.mean(array2))
print()
# 直接使用sp.stats.norm.rvs() 从正态分布的总体中去生成样本,抽样
array3=sp.stats.norm.rvs(loc=0,scale=1,size=10)
print(array3)
print(np.mean(array3))
print()