【Python】 使用 pandas 进行数据归一化


那年夏天我和你躲在 这一大片宁静的海
直到后来我们都还在 对这个世界充满期待
今年冬天你已经不在 我的心空出了一块
很高兴遇见你 让我终究明白
回忆比真实精彩
                     🎵 王心凌《那年夏天宁静的海》


数据归一化(Normalization)是数据预处理中常见的一步,它通过缩放特征值,使它们位于一定范围内,通常是 [0, 1] 或 [-1, 1]。归一化有助于消除不同量纲和量级之间的影响,使得算法更加稳定和高效。本文将介绍如何使用 pandas 库进行数据归一化。

为什么需要归一化?

提升模型性能:归一化后的数据可以加速梯度下降优化过程,提高机器学习模型的收敛速度和预测性能。
消除量纲影响:在距离度量算法(如KNN)中,归一化能消除不同特征之间的量纲影响,使得特征之间的贡献更加均衡。
提高稳定性:归一化能防止数值计算中可能出现的溢出或下溢,提高模型的稳定性。

数据归一化方法

常见的归一化方法包括:

最小-最大归一化(Min-Max Normalization)
Z-score标准化

示例数据

首先,我们创建一个包含多个特征的示例 DataFrame。

复制代码
import pandas as pd
import numpy as np# 创建示例数据
data = {'A': [1, 2, 3, 4, 5],'B': [10, 20, 30, 40, 50],'C': [100, 200, 300, 400, 500]
}
df = pd.DataFrame(data)print("原始数据:")
print(df)

最小-最大归一化

df_min_max_scaled = (df - df.min()) / (df.max() - df.min())print("\n最小-最大归一化后的数据:")
print(df_min_max_scaled)

Z-score标准化

Z-score标准化通过减去均值并除以标准差将特征值转化为均值为0,标准差为1的标准正态分布。

# Z-score标准化
df_z_score_scaled = (df - df.mean()) / df.std()print("\nZ-score标准化后的数据:")
print(df_z_score_scaled)

完整代码示例

以下是完整的代码示例,从创建数据到应用两种归一化方法:

import pandas as pd
import numpy as np# 创建示例数据
data = {'A': [1, 2, 3, 4, 5],'B': [10, 20, 30, 40, 50],'C': [100, 200, 300, 400, 500]
}
df = pd.DataFrame(data)print("原始数据:")
print(df)# 最小-最大归一化
df_min_max_scaled = (df - df.min()) / (df.max() - df.min())print("\n最小-最大归一化后的数据:")
print(df_min_max_scaled)# Z-score标准化
df_z_score_scaled = (df - df.mean()) / df.std()print("\nZ-score标准化后的数据:")
print(df_z_score_scaled)

输出结果

原始数据:A   B    C
0  1  10  100
1  2  20  200
2  3  30  300
3  4  40  400
4  5  50  500最小-最大归一化后的数据:A    B    C
0  0.00  0.00  0.00
1  0.25  0.25  0.25
2  0.50  0.50  0.50
3  0.75  0.75  0.75
4  1.00  1.00  1.00Z-score标准化后的数据:A         B         C
0 -1.264911 -1.264911 -1.264911
1 -0.632456 -0.632456 -0.632456
2  0.000000  0.000000  0.000000
3  0.632456  0.632456  0.632456
4  1.264911  1.264911  1.264911

总结

数据归一化是数据预处理中重要的一步,通过缩放特征值,使其位于特定范围内,能够提高模型性能,消除量纲影响,提高计算稳定性。本文介绍了最常用的两种归一化方法:最小-最大归一化和Z-score标准化,并提供了 pandas 实现这些方法的完整代码示例。

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

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

相关文章

OpenAI Sora:我们来自混乱,我们也将回归混乱

最近,我开始深入了解并整理一些关于Sora这个人工智能模型的系列文章。我的目标是从两个角度深入探讨:一是Sora的技术细节,包括它的原理和功能:OpenAI Sora:距离黑客帝国仅一步之遥,二是Sora的应用前景&…

c++课堂——基本知识(函数与表达式):第一讲

1.函数 在C语言中,函数是具有独立功能的一段程序,它由两部分组成:自变量(也数)和函数名。自变量可以是常量、变量或表达式;函数名要用标识符表示。通常使用函数就是调用函数名,并将原始数据代入…

孕妈妈如何高效备考PMP,纯经验分享

很惭愧从怀孕之前就报名PMP,一直处于备考,但是拖延症让我很难,在之前工作的时候,时间还算宽裕,所以基本都是边玩边学,直到现在PMP考试时间确定了才发现时间已经很紧迫了, 好在之前我报的班&…

Docker - Oracle Database Free

博文目录 文章目录 说明命令 说明 Oracle 镜像仓库 Docker 官方没有提供 Oracle Database 相关镜像, 但是 Oracle 官方有提供, 打开上面的链接, 选择 Database, 选择合适的版本, 如 enterprise, express 和 free, 这里以 free 为例. Free 分为 FULL 和 LITE 两个版本, 这里以 …

PPO代码理解

目录 # Finding the ratio (pi_theta / pi_theta__old): ratios torch.exp(logprobs - old_logprobs.detach()) advantages rewards - state_values.detach() surr1 ratios * advantages surr2 torch.clamp(ratios, 1-self.eps_clip, 1self.eps_clip) * advantages l…

【数据分析实战】—预测宠物收养状况数据分析

文章目录 数据集数据集描述特征用途注意 宠物收养预测环境准备探索数据帧数据预处理机器学习数据预处理:模型培训和评估:合奏学习: 添加底部名片获取数据集吧! 数据集 数据集描述 宠物收养数据集提供了对各种因素的全面调查&…

企微私域运营中的四大内容运营模块深度解析

在当前的数字营销时代,企业微信(企微)私域流量运营已成为企业获取用户、建立品牌、提升转化的重要手段。而在企微私域运营中,内容运营作为核心环节,其重要性不言而喻。本文将详细解析企微私域运营中的四大内容运营模块…

ES6新增语法

1、ECMA Ecma国际(Ecma International)是一家国际性会员制度的信息和电信标准组织。1994年之前,名为欧洲计算机制造商协会(European Computer Manufacturers Association) 2、ECMAScript ECMAScript 6(简…

【Linux】UNIX体系结构分解——操作系统,内核,shell

1.什么是操作系统? 从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境。我们通常将这种软件称为内核(kerel),因为它相对较小,而且位于环境的核心。 从广义上…

前端开发接单公司做到哪些点,客户才愿意把项目包给你。

作为前端外包接单公司,你知道客户选择和你合作都看中哪些因素吗?单纯是价格吗?未必,本位给大家列举7个要素,并对每个要素做了定位,大家查缺补漏吧。 作为前端外包接单公司,要吸引同行客户将前端…

【初阶数据结构】深入解析栈:探索底层逻辑

🔥引言 本篇将深入解析栈:探索底层逻辑,理解底层是如何实现并了解该接口实现的优缺点,以便于我们在编写程序灵活地使用该数据结构。 🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 &#x1…

【Altium】打开原理图是空白的解决方法

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 打开画完的原理图,报错提示并且图纸为空白的解决方法 2、 问题场景 收到其他人画好的原理图,打开后提示报错:Load file error:值对于无符号的字节太大或太小。并且原理图显示为空…

java基于ssm+jsp 美食推荐管理系统

1前台首页功能模块 美食推荐管理系统,在系统首页可以查看首页、热门美食、美食教程、美食店铺、美食社区、美食资讯、我的、跳转到后台等内容,如图1所示。 图1前台首页功能界面图 用户注册,在注册页面可以填写用户名、密码、姓名、联系电话等…

局域网内vue2 配置本地IP地址访问项目

在日常开发中同事可能需要访问你的前端项目,可以通过配置实现通过ip访问 一.首先找到config文件夹目录下的 index.js文件 将此处的host的值修改为0.0.0.0(即 host: 0.0.0.0) // Various Dev Server settings//host: localhost //将localhost进行替换成 0.0.0.0hos…

Windows 7提权:技术解析与实战指南

Windows 7提权:技术解析与实战指南 在网络安全领域,提权是指通过某些手段获取系统更高权限的过程。对于渗透测试人员或安全研究人员来说,提权是常见且关键的一步,它允许他们更深入地了解系统的安全状况。本文将详细解析Windows 7…

【shell脚本速成】mysql备份脚本

文章目录 案例需求脚本应用场景:解决问题脚本思路实现代码 🌈你好呀!我是 山顶风景独好 🎈欢迎踏入我的博客世界,能与您在此邂逅,真是缘分使然!😊 🌸愿您在此停留的每一刻…

【计算机体系结构】

第一章 计算机体系结构的基本概念 知识点 1.冯诺依曼描述的计算机的四个部分 2.指令驱动 3.存储程序计算机在体系结构上的主要特点 4.计算机体系结构的三个方面 5.计算机组成 6.计算机系统的多层次结构 7.翻译和解释 8.一种指令集结构可以有多种组成,同样一种组成可…

高考专业抉择结合兴趣、能力、职业规划,理性看待计算机专业的发展前景。

作为一名即将参加2024年高考的学生,我对此问题深感关注。在过去几年里,计算机科学与技术、人工智能、网络安全、软件工程等专业一直被视为热门专业,吸引了大量学生的青睐。然而,随着市场竞争加剧和市场饱和度提高,这些…

如何加载数据库驱动以及JDBC驱动有哪些类型?

加载数据库驱动是JDBC中非常重要的第一步,因为它使得Java应用程序能够与数据库进行通信。加载数据库驱动通常通过调用Class.forName()方法实现,该方法接受一个字符串参数,该字符串参数是数据库驱动程序的完全限定类名。 以下是如何加载数据库…

【八股系列】shouldComponentUpdate是为了解决什么问题?(React)

🎉 博客主页:【剑九 六千里-CSDN博客】 🎨 上一篇文章:【说一下mobx和redux有什么区别?(React)】 🎠 系列专栏:【面试题-八股系列】 💖 感谢大家点赞👍收藏⭐评论✍ 文章…