Scipy---入门篇

本文介绍了Scipy库的io模块使用,重点讲解了如何利用stats子模块生成不同分布的随机数,如均匀、正态、贝塔等分布,并计算随机数的均值、标准差、偏度和峰度。此外,还讨论了评估数据符合正态分布的函数,以及在实际应用中的练习案例——比较两组考试分数的难易度分析。
摘要由CSDN通过智能技术生成


一、scipy中io模块使用

import scipy
import numpy as np
import matplotlib.pyplot as plt
from scipy import io
#用io模块写入数据
a = np.arange(7)
io.savemat('a.mat',{
  'array':a})
data = io.loadmat('a.mat')
print(data['array'])
[[0 1 2 3 4 5 6]]

二、scipy中stats子模块产生符合特定规律的随机数

from scipy import stats

Stats提供了产生连续性分布的函数:

  • 均匀分布(uniform)
  • 正态分布(norm)
  • 贝塔分布(beta)
  • 离散分布
  • 伯努利分布(bernoulli)
  • 几何分布(geom)
  • 泊松分布(poisson)
#产生符合正态分布的随机数
x = stats.norm.rvs(size = 20)
x
array([-0.3668553 , -1.97745322,  0.3353114 , -0.89573224, -0.11372808,
        0.51618827, -1.28898304,  0.25557684, -2.59951208, -0.82487573,
        0.66980873, -0.49528425, -1.34229043,  0.79874304, -0.81134343,
        0.85968282, -1.35237681, -0.59951369,  0.65832086,  0.82553856])
#用频率分布直方图反映一组数据的分布情况
plt.hist(x)#数据点比较少时,不一定符合正太分布
plt.show()

这里写图片描述

x = stats.norm.rvs(size = 20000)#取多数据点进行尝试
plt.hist(x)
plt.show()#多数据情况下可看出符合正态分布

这里写图片描述

#产生服从beta分布的数组
y = stats.beta.rvs(size=100,a=0.5,b=0.5)
plt.hist(y)
plt.show()

这里写图片描述

三、计算随机数的均值和标准差

#fit方法拟合一组数据
generated = stats.norm.rvs(size=920)
mean,std = stats.norm.fit(generated)
mean#均值
0.075387649613412891
std#标准差
1.0126002204446221

四、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值