Python数据分析-Scipy科学计算法

1.认识Scipy

SciPy(发音为 "Sigh Pie")是一个开源的 Python 算法库和数学工具包。

通常与 NumPy、Matplotlib 和 pandas 等库一起使用,这些库共同构成了 Python 的科学计算基础。

2.使用Scipy基本函数

2.1 引用Scipy函数

import scipy.stats as st

2.2 构建一个简单的随机算数函数

2.2.1 引用函数、创建方程

衰减公式 : e = a * e^(-b*x)+c:

import numpy as np
import matplotlib.pyplot as plt
import scipy
def y(x,a,b,c):return a * np.exp(-b * x) + c

2.2.2 构建数列

0~4之间的50个数:

xdata = np.linspace(0,4,50)
ydata = y(xdata,2.5,1.3,0.5)
print(xdata,ydata)

2.2.3 模拟噪声处理

ydata_noise = ydata + 0.5 * np.random.randn(xdata.size)
plt.plot(xdata,ydata_noise)
#plt.show() 测试

2.2.4 生成拟合曲线

params,pcov = scipy.optimize.curve_fit(y,xdata,ydata_noise)
plt.plot(xdata,y(xdata,*params))
plt.show()

3. 随机变量与变量分布

创建一个具备正态分布形态的随机变量

s1 = st.norm.rvs(loc=0, scale=1, size=100):

生成了100个正态分布的随机数,并存储在变量 s1 中。其中随机数满足条件:

loc=0 期望值;scale=1 方差(标准差);size=100 数量

import seaborn as sns
import matplotlib.pyplot as plt
import scipy.stats as st
s1 = st.norm.rvs(loc=0,scale=1,size=100)
s2 = st.norm.rvs(loc=1,scale=2,size=100)
s3 = st.norm.rvs(loc=2,scale=3,size=100)
sns.distplot(s1)
sns.distplot(s2)
sns.distplot(s3)
plt.legend(labels=[1,2,3])
plt.show()

 4.检测检验

4.1 分布图:总体VS样本

s0 = st.norm.rvs(72,1,1000)#测试总体概率
s1 = st.norm.rvs(68,0.8,100)#测试样本概率
sns.distplot(s0)
sns.distplot(s1)
plt.show()

4.2  置信区间、拒绝域

置信区间:总体概率为95%

拒绝域:概率p=5%=0.05,

>3*std:当类别数据>3个方差时,就是小概率事件,即,可以拒绝原假设,接收备择假设。

plt.figure(figsize=(10,5))#设置窗口尺寸
sns.distplot(st.norm.rvs(size=1000))
plt.show()

4.3 计算出现的频率

print(st.norm.cdf(-2))
print(st.norm.ppf(0.022))

4.4 简单计算p值的方法

zscore = (68-72)/0.8
print(zscore)

5. 流失vs非流失用户样本差异

5.1 数据预处理,提取月消费

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import scipy.stats as stdate = pd.read_csv('WA_Fn-UseC_-Telco-Customer-Churn.csv')
#按是否流失,提取月消费数据
churn0 = date[date['是否流失']=='No']['月消费']
churn1 = date[date['是否流失']=='Yes']['月消费']
print(churn0.head())

5.2 观察分布结构

5.2.1 频数分布

plt.figure(figsize=(15,5))
churn0.hist(bins=50)
churn1.hist(bins=50)
plt.legend(labels=['churn0','churn1'])
plt.show()

5.2.2 概率分布

plt.figure(figsize=(15,5))
sns.distplot(churn0.tolist())
sns.distplot(churn1.tolist())
plt.legend(labels=['churn0','churn1'])
plt.show()

5.2.3 双侧检查:

是否存在显著性差异

H0:非流失用户μ值 = 流失用户μ值 ---均值无显著性差异

H1:非流失用户μ值 ≠ 流失用户μ值 ---均值有显著性差异

5.2.3.1 :st.ks_2samp(s0, s1)

这个函数执行Kolmogorov-Smirnov测试,用于比较两个样本是否来自同一分布。

s0 = churn0.tolist()
s1 = churn1.tolist()
print(st.ks_2samp(s0, s1))
  • statistic=0.24859894401422267, 统计量,值越小分布越相似
  • pvalue=4.827359624586335e-75, 远远小于p值标准值0.05,拒绝H0接收H1
  • statistic_location=68.8, 统计量位置,检验统计量发生位置
  • statistic_sign=1 统计量符号 statistic_sign=1为正数 
5.2.3.2 :st.describe(s0/s1)

这个函数输出样本s1/s0的描述性统计信息

print(st.describe(s0))
print(st.describe(s1))
  • nobs=5174, 数量
  • minmax=(18.25, 118.75), 最大最小值
  • mean=61.26512369540008, 均值
  • variance=966.7527670734265,方差值
  • skewness=-0.025012288702718842, 偏度值
  • kurtosis=-1.3551511690013145)峰值

偏度值:统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征

峰值:概率密度分布曲线在平均值处峰值高低的特征数,如果峰度大于三,峰的形状比较尖 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/445838.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS NEXT应用开发实战(二、封装比UniApp和小程序更简单好用的网络库)

网络访问接口,使用频次最高。之前习惯了uniapp下的网络接口风格,使用起来贼简单方便。转战到鸿蒙上后,原始网络接口写着真累啊!目标让鸿蒙上网络接口使用,简单程度比肩uniapp,比Axios更轻量级。源码量也不多…

antd table合并复杂单元格、分组合并行、分组合并列、动态渲染列、嵌套表头

项目里遇到个需求,涉及到比较复杂的单元格合并 、嵌套表头、分组合并行、合并列等,并且数据列还是动态的,效果图如下: 可以分组设置【显示列】例如:当前组为【合同约定】,显示列为【合同节点】和【节点金额…

文件完整性监控:如何提高企业的数据安全性

企业网络庞大而复杂,需要处理大量关键业务数据,这些敏感文件在企业网络中不断传输,并由多个用户和实体存储、共享和访问。FIM 工具或具有 FIM 功能的 SIEM 解决方案使企业能够跟踪未经授权的文件更改、对敏感信息的恶意访问、数据篡改尝试和内…

VSCode 使用 EmmyLua 对lua进行调试

时间:2024年10月 其他:win10,EmmyLua v0.8.20 参考:https://blog.csdn.net/ShenHaoDeHao/article/details/140268354 有几个概念搞清楚就好理解了。一般开发中,我们编写的lua文件由宿主程序的来解析、执行&#xff1…

[Linux#65][TCP] 详解 延迟应答 | 捎带应答 | 流量控制 | 拥塞控制

目录 一、延迟应答 二、捎带应答 三. 流量控制 总结 四. 拥塞控制 1. 拥塞控制 2. 慢启动机制: 3.思考 4.拥塞避免算法 5. 快速恢复算法 一、延迟应答 1. 立即应答问题 接收数据的主机若立刻返回ACK应答,可能返回的窗口较小。例如&#xff1…

RabbitMQ 入门(三)SpringAMQP

一、Spring AMQP 简介 SpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用起来非常方便。 SpringAmqp的官方地址:https://spring.io/projects/spring-amqp SpringAMQP提供了三个功能: - 自动…

【嵌入式软件-STM32】STM32简介

目录 一、STM32定义 二、STM32用途 三、STM32特点 四、STM32 四个系列 五、了解ARM 六、芯片解释 七、片上资源 八、命名规则 九、系统结构 内核 Flash DMA 外设种类和分布 十、引脚定义 类型 名称 引脚 十一、启动配置 十二、STM32最小系统电路 STM32及供电 供电引脚 滤波电容…

FFmpeg的简单使用【Windows】--- 视频倒叙播放

实现功能 点击【选择文件】按钮可以选择视频,当点击【开始处理】按钮之后,会先将视频上传到服务器,然后开始进行视频倒叙播放的处理,当视频处理完毕之后会将输出的文件路径返回,同时在页面中将处理好的视频展示出来。…

【特赞-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

低代码开发技术:驱动MES系统创新与制造业数字化转型的融合之路

低代码开发与生产管理MES系统的融合,是当今制造业数字化转型的一个重要趋势。以下是对这一融合现象的详细分析: 一、低代码开发的概念与特点 低代码开发是一种通过图形化界面和预构建模块来简化应用程序开发过程的方法。它允许开发人员使用拖放组件和最…

【视觉分割新SOTA|论文解读2】一种最先进的图像分割模型——Segment Anything Model (SAM)模型架构!

【视觉分割新SOTA|论文解读2】一种最先进的图像分割模型——Segment Anything Model (SAM)模型架构! 【视觉分割新SOTA|论文解读2】一种最先进的图像分割模型——Segment Anything Model (SAM)模型架构! 文章目录 【视觉分割新SOTA|论文解读2】一种最先…

Matlab详细学习教程 MATLAB使用教程与知识点总结

Matlab语言教程 章节目录 一、Matlab简介与基础操作 二、变量与数据类型 三、矩阵与数组操作 四、基本数学运算与函数 五、图形绘制与数据可视化 六、控制流与逻辑运算 七、脚本与函数编写 八、数据导入与导出 九、Matlab应用实例分析 一、Matlab简介与基础操作 重点内容知识…

DM8数据库用户和表空间管理

1 说明 DM8用户管理和表空间管理常用的管理命令,包括创建、修改和查看信息操作等。 2 用户管理 2.1 创建用户 创建一个用户lu9up,密码为"admin2024.",未制定表空间,使用默认的表空间main。 SQL> create user lu…

八大排序--08快速排序

现有 arr {4,8,9,2,7}数组,请用快速排序的方式实现从小到大排序: 方法: 1.定义待排序数组中的第一个值为基准数; 2.定义j游标,从后向前移动找到第一个比基准数小的值停下; 3.定义i游标,从后向…

黑马程序员-redis项目实践笔记1

目录 一、 基于Session实现登录 发送验证码 验证用户输入验证码 校验登录状态 Redis代替Session登录 发送验证码修改 验证用户输入验证码 登录拦截器的优化 二、 商铺查询缓存 缓存更新策略 数据库和缓存不一致解决方案 缓存更新策略的最佳实践方案 实现商铺缓…

大数据毕业设计选题推荐-音乐数据分析系统-音乐推荐系统-Python数据可视化-Hive-Hadoop-Spark

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

【C语言】使用结构体实现位段

文章目录 一、什么是位段二、位段的内存分配1.位段内存分配规则练习1练习2 三、位段的跨平台问题四、位段的应用五、位段使用的注意事项 一、什么是位段 在上一节中我们讲解了结构体,而位段的声明和结构是类似的,它们有两个不同之处,如下&…

Kubernetes(K8s)部署

主机名ip角色docker-harbor.revkarl.org172.25.254.250harbor仓库k8s-master172.25.254.100master,k8s集群控制节点k8s-node1172.25.254.10worker,k8s集群工作节点k8s-node2172.25.254.20worker,k8s集群工作节点 注意: 所有节点禁…

信息系统运维管理方案,运维建设文档,运维平台建设方案,软件硬件中间件运维方案,信息安全管理(原件word,PPT,excel)

建设方案目录: 1、智慧运维系统建设背景 2、智慧运维系统建设目标 3、智慧运维系统建设内容 4、智慧运维系统建设技术 5、智慧运维系统建设流程 6、智慧运维系统建设收益 企业对运维管理的需求: 1、提高运维效率:降低运维成本,提高…

vue从0开始的项目搭建(含环境配置)

一、环境准备 下载node.js 检查node.js版本 替换npm下载源 1.下载node.js: Node.js — 在任何地方运行 JavaScript (nodejs.org) 2.查看版本: windowsr输入cmd进入输入node -v命令查看版本号是否出现确认是否安装 2.替换npm下载源: npm config set registry https://reg…