数据分析库的拓展学习

2023-11-20

01 前言

除了前文所说的python数据分析的“三大神器”之外,你还需要对数据进行进一步的建模,预测,评估,并进行数据可视化,想要一劳永逸,就需要坚持学习一些更好用的数据分析库,接下来就逐一介绍。

02 衍生库的使用

Seaborn

Seaborn是一个基于matplotlib的Python可视化库,它提供了一个高级的界面,用于制作各种统计图形。Seaborn可以用来可视化统计数据集的分布,矩阵数据,回归模型等。

常用函数:

sns.distplot(): 绘制单变量分布图

import seaborn as sns
import numpy as np

# 生成一组随机数据
x = np.random.normal(loc=0, scale=1, size=1000)

# 绘制单变量分布图
sns.distplot(x, kde=True, rug=True, bins=20)

解释:该示例中,我们使用numpy生成了一组均值为0、标准差为1的正态分布数据,并使用distplot()函数绘制了它们的单变量分布图。

其中,kde参数指定是否绘制核密度估计图,rug参数指定是否绘制小刻度线,bins参数指定直方图的条数。

sns.jointplot(): 绘制双变量分布图

import seaborn as sns
import numpy as np

# 生成两组相关随机数据
x = np.random.normal(loc=0, scale=1, size=1000)
y = 0.5 * x + np.random.normal(loc=0, scale=0.5, size=1000)

# 绘制双变量分布图
sns.jointplot(x=x, y=y, kind='scatter')

解释:该示例中,我们使用numpy生成了两组相关的随机数据,并使用jointplot()函数绘制了它们的双变量分布图。

其中,kind参数指定绘制的图形类型,这里选择的是散点图。

sns.pairplot(): 绘制多变量分布图

import seaborn as sns
import pandas as pd

# 加载鸢尾花数据集
iris = sns.load_dataset('iris')

# 绘制多变量分布图
sns.pairplot(data=iris, hue='species')

解释:该示例中,我们使用seaborn内置的鸢尾花数据集,并使用pairplot()函数绘制了它们的多变量分布图。

其中,hue参数指定用于区分不同类别的变量。

sns.boxplot(): 绘制箱线图

import seaborn as sns
import pandas as pd

# 加载鸢尾花数据集
iris = sns.load_dataset('iris')

# 绘制箱线图
sns.boxplot(data=iris, x='species', y='petal_length')

sns.heatmap(): 绘制热力图

热力图(Heatmap)是一种二维图表,通常用于表示矩阵中每个值的相对大小。在数据分析和可视化中,热力图常用于探索变量之间的相关性或者用于可视化矩阵数据

下面是一个使用Seaborn库绘制热力图的示例:

import seaborn as sns
import numpy as np

# 创建一个3x3的矩阵
data = np.random.randn(3, 3)

# 绘制热力图
sns.heatmap(data, annot=True, cmap='coolwarm')

解释:该示例中,我们使用Numpy库生成了一个3x3的矩阵,并使用Seaborn库中的heatmap()函数绘制了该矩阵的热力图。

其中,annot=True参数表示在热力图上显示每个单元格的值,cmap='coolwarm’参数指定了颜色映射。

除了使用随机数据生成热力图之外,我们还可以使用真实的数据集绘制热力图。例如,使用Seaborn库中自带的flights数据集绘制月份和年份之间的乘客数量热力图:


import seaborn as sns

# 加载数据集
flights = sns.load_dataset('flights')

# 将数据集重塑为矩阵形式
data = flights.pivot('month', 'year', 'passengers')

# 绘制热力图
sns.heatmap(data, cmap='YlGnBu')

解释:该示例中,我们使用Seaborn库中自带的flights数据集,并使用pivot()函数将其重塑为矩阵形式,其中行表示月份,列表示年份,单元格的值表示该月份和年份的乘客数量。然后,我们使用heatmap()函数绘制了该矩阵的热力图,并使用cmap='YlGnBu’参数指定了颜色映射。

Scikit-learn

Scikit-learn是一个用于机器学习的Python库,包含了各种分类、回归和聚类等算法。它提供了简单而一致的接口,使得训练和评估模型变得非常容易。

常用函数:

sklearn.model_selection.train_test_split(): 将数据集拆分为训练集和测试集

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

# 加载数据集
iris = load_iris()
X, y = iris.data, iris.target

# 将数据集拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

解释:该示例中,我们使用sklearn内置的鸢尾花数据集,并使用train_test_split()函数将其拆分为训练集和测试集。

其中,test_size参数指定测试集所占的比例,random_state参数指定随机数生成器的种子。

sklearn.linear_model.LinearRegression(): 线性回归模型

from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression

# 加载数据集
boston = load_boston()
X, y = boston.data, boston.target

# 训练线性回归模型
model = LinearRegression()
model.fit(X, y)

# 输出模型参数
print('Intercept:', model.intercept_)
print('Coefficients:', model.coef_)

解释:该示例中,我们使用sklearn内置的波士顿房价数据集,并使用LinearRegression()函数训练了一个线性回归模型。然后,我们输出了模型的截距和系数。
sklearn.tree.DecisionTreeClassifier(): 决策树分类模型

from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier

# 加载数据集
iris = load_iris()
X, y = iris.data, iris.target

# 训练决策树分类器
model = DecisionTreeClassifier()
model.fit(X, y)

# 输出模型在训练集上的准确率
print('Accuracy:', model.score(X, y))

解释:该示例中,我们使用sklearn内置的鸢尾花数据集,并使用DecisionTreeClassifier()函数训练了一个决策树分类器。然后,我们输出了模型在训练集上的准确率。

sklearn.cluster.KMeans(): K-Means聚类模型

from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans

# 生成一组随机数据
X, y = make_blobs(n_samples=1000, centers=4, random_state=42)

# 使用K均值聚类算法进行聚类
model = KMeans(n_clusters=4)
model.fit(X)

# 输出聚类结果
print('Cluster labels:', model.labels_)

解释:该示例中,我们使用sklearn内置的make_blobs()函数生成了一组随机数据,并使用KMeans()函数进行了K均值聚类。然后,我们输出了聚类结果。

sklearn.metrics.accuracy_score(): 计算分类准确率

from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score

# 加载数据集
iris = load_iris()
X, y = iris.data, iris.target

# 训练决策树分类器
model = DecisionTreeClassifier()
model.fit(X, y)

# 预测
y_pred = model.predict(X)

# 输出准确率
print('Accuracy:', accuracy_score(y, y_pred))

解释:该示例中,我们使用sklearn内置的鸢尾花数据集,并使用DecisionTreeClassifier()函数训练了一个决策树分类器。进行预测后,我们输出了模型在训练集上的准确率。

Statsmodels

Statsmodels是一个用于统计建模的Python库,它提供了多种统计模型和数据探索工具。Statsmodels可以用来进行回归分析、时间序列分析、非参数估计等。

常用函数:

sm.OLS(): 最小二乘线性回归
sm.Logit(): 逻辑回归模型
sm.GLM(): 广义线性模型
sm.tsa.ARIMA(): 自回归集成移动平均模型
sm.stats.anova_lm(): 方差分析
sm.graphics.plot_regress_exog(): 绘制线性回归拟合图
sm.qqplot(): 绘制QQ图
sm.tsa.seasonal_decompose(): 季节性分解
sm.stats.ttest_ind(): 独立样本t检验
sm.stats.ttest_rel(): 配对样本t检验
sm.stats.proportions_ztest(): 二项分布比例检验
sm.nonparametric.Kendalltau(): Kendall Tau相关系数
sm.nonparametric.Kruskal(): Kruskal-Wallis秩和检验
sm.regression.mixed_linear_model.MixedLM(): 混合线性模型
sm.stats.DescrStatsW(): 描述性统计分析

这里因为线性回归分析不常用,这里不做过多举例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据分析库的拓展学习 的相关文章

  • 如何在python中读取多个文件中的文本

    我的文件夹中有许多文本文件 大约有 3000 个文件 每个文件中第 193 行是唯一包含重要信息的行 我如何使用 python 将所有这些文件读入 1 个文本文件 os 模块中有一个名为 list dir 的函数 该函数返回给定目录中所有文
  • Python、Tkinter、更改标签颜色

    有没有一种简单的方法来更改按钮中文本的颜色 I use button text input text here 更改按下后按钮文本的内容 是否存在类似的颜色变化 button color red Use the foreground设置按钮
  • 将字符串转换为带有毫秒和时区的日期时间 - Python

    我有以下 python 片段 from datetime import datetime timestamp 05 Jan 2015 17 47 59 000 0800 datetime object datetime strptime t
  • 如何使用固定的 pandas 数据框进行动态 matplotlib 绘图?

    我有一个名为的数据框benchmark returns and strategy returns 两者具有相同的时间跨度 我想找到一种方法以漂亮的动画风格绘制数据点 以便它显示逐渐加载的所有点 我知道有一个matplotlib animat
  • Flask 和 uWSGI - 无法加载应用程序 0 (mountpoint='')(找不到可调用或导入错误)

    当我尝试使用 uWSGI 启动 Flask 时 出现以下错误 我是这样开始的 gt cd gt root localhost uwsgi socket 127 0 0 1 6000 file path to folder run py ca
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • 如何使用包含代码的“asyncio.sleep()”进行单元测试?

    我在编写 asyncio sleep 包含的单元测试时遇到问题 我要等待实际的睡眠时间吗 I used freezegun到嘲笑时间 当我尝试使用普通可调用对象运行测试时 这个库非常有用 但我找不到运行包含 asyncio sleep 的测
  • SQL Alchemy 中的 NULL 安全不等式比较?

    目前 我知道如何表达 NULL 安全的唯一方法 SQL Alchemy 中的比较 其中与 NULL 条目的比较计算结果为 True 而不是 NULL 是 or field None field value 有没有办法在 SQL Alchem
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • Geopandas 设置几何图形:MultiPolygon“等于 len 键和值”的 ValueError

    我有 2 个带有几何列的地理数据框 我将一些几何图形从 1 个复制到另一个 这对于多边形效果很好 但对于任何 有效 多多边形都会返回 ValueError 请指教如何解决这个问题 我不知道是否 如何 为什么应该更改 MultiPolygon
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 在Python中重置生成器对象

    我有一个由多个yield 返回的生成器对象 准备调用该生成器是相当耗时的操作 这就是为什么我想多次重复使用生成器 y FunctionWithYield for x in y print x here must be something t
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数
  • PyAudio ErrNo 输入溢出 -9981

    我遇到了与用户相同的错误 Python 使用 Pyaudio 以 16000Hz 录制音频时出错 https stackoverflow com questions 12994981 python error audio recording

随机推荐

  • MATLAB之function函数

    在MATLAB中 function函数用于定义一个新函数 用于将一定的输入 也称为参数 和输出变量与函数相关联 讲人话就是把自变量 函数和函数表达式定义为一个 可调用的函数块 由以下几个部分组成 function 关键字 首先得告诉MATL
  • stm32f103c8t6驱动oled

    要驱动OLED显示屏 您可以使用STM32F103C8T6微控制器及其相关的GPIO引脚和SPI总线接口 以下是驱动OLED显示屏的一些基本步骤 配置STM32F103C8T6的SPI总线接口 通过SPI总线发送命令和数据给OLED显示屏
  • iOS 自定义弹出框

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 在iOS中 系统再带的弹出窗体不好扩展 开发时候不如自定义一个弹出窗体 附加上显示和消失的动画 弹出窗体父类如下 具体效果直接往上面添加控件就行 ViewControlle
  • Jsp基于Web的可维护的数据库浏览器(源代码+论文+答辩PPT)

    1绪论 1 1Web应用系统 近十年来 基于Internet的应用正以前所未有的高速度发展 其中一个重要的方向就是基于Web的应用系统的发展 在此期间 随着技术的不断更新和应用的不断深入 Web应用系统的发展也经历了几个阶段性的跨越 图1
  • 什么是html网址,html是什么

    html语言是网络上的通用语言 也是比较简单的语言 对于想要在前端行业发展的人来说 html是必须要学的语言 那么 今天我们要来讲一下html是什么语言 html什么意思 以及html语言特点 什么是html HTML的英文全称是Hyper
  • 【C++】读取txt文件并查询指定字段

    目录 一 函数功能说明 二 代码 方法1 使用 lt lt 运算符 方法2 使用string getline 如果这篇文章对你有所帮助 渴望获得你的一个点赞 一 函数功能说明 函数名 说明 1 CompareFileFileds 按字符读取
  • 提高测试覆盖率的四大步骤

    什么是测试覆盖率 测试覆盖率衡量您测试了多少应用程序 这不仅与您执行的测试数量有关 它还与您查看的真实设备 浏览器和操作系统版本有关 您测试的设备和操作系统组合越多 测试覆盖的代码越多 测试覆盖率就越高 请注意 实现 100 的测试覆盖率是
  • enum与typedef enum的用法

    前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住分享一下给大家 点击跳转到网站 https www captainai net db 一 两者的用法 枚举类型定义用关键字enum标识 形式为 enum 标识符 枚举数据表
  • Centos 7安装图形化系统

    Centos 7 图形化安装 点击创建新的虚拟机 进入虚拟机设置向导界面 自定义 高级 点击下一步 进入虚拟机硬件兼容性 默认下一步即可 点击下一步 进入安装客户端操作系统 选择稍后安装操作系统 点击下一步 进入选择客户机操作系统 选择Li
  • python3 内置方法 字符串转换为字典

    内置方法 eval 将字符串转换为字典代码 str backend www oldboy org record server 122 111 2 23 weight 20 maxconn 30 str to dict eval str pr
  • 【MongoDB for Java 1】

    获得数据库服务 Mongo m new Mongo localhost 27017 得到数据库mytest DB db m getDB dbtest 得到mytest数据库下所有表名 Set
  • 【自用】无法通过ESP32创建HomeAssistant实体问题解决(MQTT对ESP32创建实体请求无应答)

    一 问题描述 1 使用 MQTTX 测试客户端能够创建实体 当通过 MQTTX 发送注册实体请求的时候 实体能够在 MQTT 服务器中注册成功 2 使用 ESP32 无法创建实体 在ESP32中通过 publish 函数发送注册请求的时候
  • 数据库不推荐使用外键的9个理由!

    我的经验告诉我 很多数据库 大多数我曾经使用的 不包含外键时并不总是一件坏事 在这篇文章中 我想把重点放在为什么的原因上 为什么这是一个问题 1 潜在的数据完整性问题 缺少外键明显问题是数据库不能强制进行引用完整性检查 如果在高一层没有正确
  • 用指针访问一维数组

    文章目录 顺序查找 数组方式实现 指针实现方式 对一位数组元素的访问有三种方式 指针变量的关系运算 引例 数组实现方式 主函数 指针实现方式 主函数 一维数组作为函数的参数 实际应用 顺序查找 要求用指针实现 在整数集合r中顺序查找与给定值
  • linux下安装redis数据库

    上一篇文章写到安装虚拟机 接下来就可以使用我们的虚拟机了 redis的安装 首先我们下载好需要的安装包 可以进入官网 https redis io download 不挑版本的直接用我分享的redis 6 2 6 tar gz 链接 htt
  • .vimrc配置

    set 前加冒号 与不加 一样 set nu 状态栏 let mapleader
  • Xmind8 Pro安装教程(Win+Mac)

    原文http blog csdn net anzhongliu article details 78081267 转自 https blog csdn net u014172271 article details 79666848 xmin
  • 网络安全工程师教你:Shadon网络空间搜索引擎使用教程

    一 背景介绍 与谷歌不同的是 Shodan不是在网上搜索网址 而是直接进入互联网的背后通道 Shodan可以说是一款 黑暗 谷歌 一刻不停的在寻找着所有和互联网关联的服务器 摄像头 打印机 路由器等等 每个月Shodan都会在大约5亿个服务
  • Linux--shell之while循环+for循环+until循环

    Linux shell之while循环 for循环 until循环 概述 for循环 while循环 until循环 循环嵌套 概述 脚本执行任务的时候总会遇到需要重复执行的时候 为了节省资源 除了计划任务 我们还可以使用脚本来完成 接下来
  • 数据分析库的拓展学习

    01 前言 除了前文所说的python数据分析的 三大神器 之外 你还需要对数据进行进一步的建模 预测 评估 并进行数据可视化 想要一劳永逸 就需要坚持学习一些更好用的数据分析库 接下来就逐一介绍 02 衍生库的使用 Seaborn Sea