1.fit_transform() 2.get_dummies 3.pd.columns 4.Python字符串格式化--format()方法

PEP-8实战指南:从代码可读性到CI自动化落地 PEP-8是Python工程化协作的基石,本质是一套以降低认知负荷为目标的可读性协议。它通过4空格缩进、79字符行宽、空行分隔、绝对导入、命名约定等规则,将隐式意图显式化,支撑高效阅读、安全重构与长期维护。在数据科学、AI中台和SaaS后台等真实场景中,合规代码显著提升Git Diff清晰度、Code Review有效性及CI流水线稳定性。结合black、pylint、pre-commit等工具链,可实现从开发编辑器到持续集成的全链路自动化落地,让规范真正服务于人而非束缚于形。 阅读详情

1.Python: sklearn库中数据预处理函数fit_transform()和transform()的区别

 

敲《Python机器学习及实践》上的code的时候,对于数据预处理中涉及到的fit_transform()函数和transform()函数之间的区别很模糊,查阅了很多资料,这里整理一下:

 

涉及到这两个函数的代码如下:

 

 
# 从sklearn.preprocessing导入StandardScaler

from sklearn.preprocessing import StandardScaler

# 标准化数据,保证每个维度的特征数据方差为1,均值为0,使得预测结果不会被某些维度过大的特征值而主导

ss = StandardScaler()

# fit_transform()先拟合数据,再标准化

X_train = ss.fit_transform(X_train)

# transform()数据标准化

X_test = ss.transform(X_test)


我们先来看一下这两个函数的API以及参数含义:

 

1、fit_transform()函数

即fit_transform()的作用就是先拟合数据,然后转化它将其转化为标准形式

2、transform()函数

即tranform()的作用是通过找中心和缩放等实现标准化

 

到了这里,我们似乎知道了两者的一些差别,就像名字上的不同,前者多了一个fit数据的步骤,那为什么在标准化数据的时候不使用fit_transform()函数呢?

原因如下:

为了数据归一化(使特征数据方差为1,均值为0),我们需要计算特征数据的均值μ和方差σ^2,再使用下面的公式进行归一化:

我们在训练集上调用fit_transform(),其实找到了均值μ和方差σ^2,即我们已经找到了转换规则,我们把这个规则利用在训练集上,同样,我们可以直接将其运用到测试集上(甚至交叉验证集),所以在测试集上的处理,我们只需要标准化数据而不需要再次拟合数据。用一幅图展示如下:

 

2.pandas使用get_dummies进行one-hot编码

官网:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.get_dummies.html

 

pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False)[source]

Convert categorical variable into dummy/indicator variables

Parameters:

data : array-like, Series, or DataFrame

prefix : string, list of strings, or dict of strings, default None

String to append DataFrame column namesPass a list with length equal to the number of columnswhen calling get_dummies on a DataFrame. Alternatively, prefixcan be a dictionary mapping column names to prefixes.

prefix_sep : string, default ‘_’

If appending prefix, separator/delimiter to use. Or pass alist or dictionary as with prefix.

dummy_na : bool, default False

Add a column to indicate NaNs, if False NaNs are ignored.

columns : list-like, default None

Column names in the DataFrame to be encoded.If columns is None then all the columns withobject or category dtype will be converted.

sparse : bool, default False

Whether the dummy columns should be sparse or not. ReturnsSparseDataFrame if data is a Series or if all columns are included.Otherwise returns a DataFrame with some SparseBlocks.

drop_first : bool, default False

Whether to get k-1 dummies out of k categorical levels by removing thefirst level.

New in version 0.18.0.

Returns

——-

dummies : DataFrame or SparseDataFrame

See also

Series.str.get_dummies

Examples

>>> import pandas as pd
>>> s = pd.Series(list('abca'))
>>> pd.get_dummies(s)
   a  b  c
0  1  0  0
1  0  1  0
2  0  0  1
3  1  0  0
>>> s1 = ['a', 'b', np.nan]
>>> pd.get_dummies(s1)
   a  b
0  1  0
1  0  1
2  0  0
>>> pd.get_dummies(s1, dummy_na=True)
   a  b  NaN
0  1  0    0
1  0  1    0
2  0  0    1
>>> df = pd.DataFrame({'A': ['a', 'b', 'a'], 'B': ['b', 'a', 'c'],
...                    'C': [1, 2, 3]})
>>> pd.get_dummies(df, prefix=['col1', 'col2'])
   C  col1_a  col1_b  col2_a  col2_b  col2_c
0  1       1       0       0       1       0
1  2       0       1       1       0       0
2  3       1       0       0       0       1
>>> pd.get_dummies(pd.Series(list('abcaa')))
   a  b  c
0  1  0  0
1  0  1  0
2  0  0  1
3  1  0  0
4  1  0  0
>>> pd.get_dummies(pd.Series(list('abcaa')), drop_first=True)
   b  c
0  0  0
1  1  0
2  0  1
3  0  0
4  0  0
离散特征的编码分为两种情况:
 
1、离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one-hot编码
 
2、离散特征的取值有大小的意义,比如size:[X,XL,XXL],那么就使用数值的映射{X:1,XL:2,XXL:3}
 
使用pandas可以很方便的对离散型特征进行one-hot编码
 
[python] view plain copy
 
    import pandas as pd  
    df = pd.DataFrame([  
                ['green', 'M', 10.1, 'class1'],   
                ['red', 'L', 13.5, 'class2'],   
                ['blue', 'XL', 15.3, 'class1']])  
      
    df.columns = ['color', 'size', 'prize', 'class label']  
      
    size_mapping = {  
               'XL': 3,  
               'L': 2,  
               'M': 1}  
    df['size'] = df['size'].map(size_mapping)  
      
    class_mapping = {label:idx for idx,label in enumerate(set(df['class label']))}  
    df['class label'] = df['class label'].map(class_mapping)  
 
说明:对于有大小意义的离散特征,直接使用映射就可以了,{'XL':3,'L':2,'M':1}
 
Using the get_dummies will create a new column for every unique string in a certain column:使用get_dummies进行one-hot编码
[python] view plain copy
 
    pd.get_dummies(df)  
 

3.pd.columns和pd.columns.tolist

print(food_info.columns)
# 输出:输出全部的列名,而不是用省略号代替

Index(['NDB_No', 'Shrt_Desc', 'Water_(g)', 'Energ_Kcal', 'Protein_(g)', 'Lipid_Tot_(g)', 'Ash_(g)', 'Carbohydrt_(g)', 'Fiber_TD_(g)', 'Sugar_Tot_(g)', 'Calcium_(mg)', 'Iron_(mg)', 'Magnesium_(mg)', 'Phosphorus_(mg)', 'Potassium_(mg)', 'Sodium_(mg)', 'Zinc_(mg)', 'Copper_(mg)', 'Manganese_(mg)', 'Selenium_(mcg)', 'Vit_C_(mg)', 'Thiamin_(mg)', 'Riboflavin_(mg)', 'Niacin_(mg)', 'Vit_B6_(mg)', 'Vit_B12_(mcg)', 'Vit_A_IU', 'Vit_A_RAE', 'Vit_E_(mg)', 'Vit_D_mcg', 'Vit_D_IU', 'Vit_K_(mcg)', 'FA_Sat_(g)', 'FA_Mono_(g)', 'FA_Poly_(g)', 'Cholestrl_(mg)'], dtype='object')
复制代码
可以使用tolist()函数转化为list

food_info.columns.tolist()

4.Python字符串格式化--format()方法

1.简单运用

字符串类型格式化采用format()方法,基本使用格式是:
     <模板字符串>.format(<逗号分隔的参数>)
调用format()方法后会返回一个新的字符串,参数从0 开始编号。
"{}:计算机{}的CPU 占用率为{}%。".format("2016-12-31","PYTHON",10)
Out[10]: '2016-12-31:计算机PYTHON的CPU 占用率为10%。'
format()方法可以非常方便地连接不同类型的变量或内容,如果需要输出大括号,采用{{表示{,}}表示},例如:
"{}{}{}".format("圆周率是",3.1415926,"...")
Out[11]: '圆周率是3.1415926...'
 
"圆周率{{{1}{2}}}是{0}".format("无理数",3.1415926,"...")
Out[12]: '圆周率{3.1415926...}是无理数'
 
s="圆周率{{{1}{2}}}是{0}" #大括号本身是字符串的一部分
 
s
Out[14]: '圆周率{{{1}{2}}}是{0}'
 
s.format("无理数",3.1415926,"...") #当调用format()时解析大括号
Out[15]: '圆周率{3.1415926...}是无理数'

 

数据预处理——fit()函数,transform()函数,fit_transform()函数 fit()函数,transform()函数,fit_transform()函数 阅读详情

相关推荐

python_主成分分析(PCA)降维

主成分分析(principal component analysis)是一种常见的数据降维方法,其目的是在“信息”损失较小的前提下,将高维的数据转换到低维,从而减小计算量。   PCA的本质就是找一些投影方向,使得数据在这些投影方向上的方差最大,而且这些投影方向是相互正交的。这其实就是找新的正交基的过程,计算原始数据在这些正交基上投影的方差,方差越大,就说明在对应正交基上包含了更多的信息量。

huizxhhui1994的博客 2万+

【python】数据预处理函数fit_transform

@TOC https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html#sklearn.preprocessing.LabelEncoder.fit_transform fit() :用于从训练数据生成学习模型参数 transform():从fit()方法生成的参数,应用于模型以...

dhy012345的博客 3265

数据科学常见模型总结(二)-倾向性得分匹配模型

PSM的核心思想是从未受干预的用户群体中,找到和干预对象一模一样的用户,这样就可以把因果效应归因到干预上。

wudelong0112的专栏 4899

Sklearn:sklearn.preprocessing之StandardScaler 的transform()函数和fit_transform()函数清晰讲解及其案例应用

Sklearn:sklearn.preprocessing之StandardScaler 的transform()函数和fit_transform()函数清晰讲解及其案例应用目录sklearn.preprocessing之StandardScaler 的transform()函数和fit_transform()函数fit_transform函数两者联系 fit(x,y)传两个参数的是有监督学习的算法,fit(x)传一个参数的是无监督学习的算法,比如降维、特征提取、标准化。 fi

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 9564

Vivado IP核与约束文件管理指南:解决OOC警告、COE文件丢失与Block Design复用

本文详细介绍了Vivado IP核与约束文件管理的系统化方法,包括解决OOC警告、COE文件丢失与Block Design复用等常见问题。通过IP核锁定机制、分层约束架构和动态约束技术,提升FPGA工程的健壮性和团队协作效率,特别适合中大型项目开发。

weixin_30887919的博客 432

Tessent ATPG进阶:解锁多种Fault Model的工程实践与选型指南

本文深入探讨Tessent ATPG中多种Fault Model的工程实践与选型策略,涵盖Stuck-at、Transition、Bridge等核心模型的应用场景与配置技巧。通过实际案例解析,展示如何组合不同Fault Model提升芯片测试覆盖率,特别针对汽车电子、超低功耗芯片等复杂场景提供专业解决方案。

weixin_30219613的博客 200

Python: sklearn库中数据预处理函数fit_transform()和transform()的区别

原帖:https://blog.csdn.net/quiet_girl/article/details/72517053 敲《Python机器学习及实践》上的code的时候,对于数据预处理中涉及到的fit_transform()函数和transform()函数之间的区别很模糊,查阅了很多资料,这里整理一下:   涉及到这两个函数的代码如下:     # 从sklearn.pre...

wangdi_37927的博客 2198

AD9361 FIR 滤波器设计

matlab 得到滤波器系数

weixin_44630490的博客 1万+

sklearn库中数据预处理函数fit_transform()和transform()的区别--01

# coding=utf-8 from sklearn import preprocessing import numpy as np from sklearn.preprocessing import StandardScaler ''' StandardScaler 类 预处理对象 fit() 预处理的数据,计算矩阵列均值和...

编程之路 1万+

vcs覆盖率相关

选择要查看的覆盖率点,右键选择 show xxx tests;

qq_40571921的博客 2398

基于51单片机+SYN6288语音播报

51单片机控制SYN6288语音播报资料SYN6288模块原理图语音合成命令接线如何接线实现原理程序代码main.csyn6288.cuart.cdelay.c基于 51单片机的其他项目基于51单片机+遥控灯基于51单片机+LCD1602显示基于51单片机+红外遥控解码+LCD1602显示基于51单片机+DHT11温湿度+LCD1602显示基于51单片机+DS18B20温度测温器+LCD1602显示尾声 资料 我用的是绿深电子技术的模块,资料也挺齐全的。也有相关例程。 SYN6288模块原理图 语音合成

weixin_47457689的博客 3万+

机器学习中的fit(),fit_transform(),transform()

机器学习中,训练集是知道的,但是测试集是未知的,所以做标准化时只能用训练集的参数(这个参数指 最大最小值标准化中的最大值最小值,或者是正态标准化中的均值和方差)来做,两个fit_transform是用的各自数据集的参数来进行标准化。但是实际中,我们不能用测试集的参数来标准化测试集,要用训练集的参数来标准化训练集。

Bruce_zfh的博客 553

2026华为OD机试(Python)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,Python实现。

MISAYAONE的博客 29万+

机器学习模型如何封装为生产级API:Flask实战指南

机器学习模型部署不是算法终点,而是工程起点。将训练好的模型转化为稳定、安全、可监控的API服务,本质是实现从离线实验到在线推理的范式跃迁。其核心原理在于解耦模型逻辑与服务契约,通过轻量框架(如Flask)构建低开销HTTP接口,并配合序列化(joblib)、预处理一致性(OneHotEncoder+handle_unknown)、输入校验(JSON Schema)和资源管理(Gunicorn+Nginx)形成闭环。该技术路径显著提升模型在金融风控、智能推荐、IoT预测等实时业务场景中的交付效率与可靠性,已成

331

手把手教你学SIMULINK模块库文件专栏-From Workspace 模块详解

模块是 Simulink 中的一个信号源模块,用于从 MATLAB 工作区加载数据作为输入信号。该模块允许用户将预先在 MATLAB 中生成的数据(如时间序列、矩阵或结构体)导入到 Simulink 模型中,从而实现更灵活的信号输入和仿真控制。通过深入了解其参数的影响及结合 MATLAB 脚本的应用,读者可以更加有效地利用这一模块进行仿真和研究。此外,通过实际应用场景的扩展以及常见问题解答部分的帮助,能够更好地掌握。模块是一个非常灵活的工具,适用于需要从 MATLAB 工作区加载数据的各种场景。

MHD0815的博客 636

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Python机器学习:从零基础到项目实战

当您翻开此书,您正踏入一场数据与智慧的修行。机器学习,并非冰冷的符码,而是机器模拟人类洞察世界的法门。本书将带您,以Python为舟,泛游于算法之海。我们不只传授“术”,更探求其后的“道”——从数据的生灭流转中观照规律,于模型的迭代演进里体悟得失。愿您合上书卷时,收获的不仅是驾驭数据的技能,更有一双洞悉复杂、化繁为简的“智慧之眼”。现在,让我们一同启程。

YunWisdom 972

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Python:sklearn数据预处理中fit(),transform()与fit_transform()的区别

一.前提 sklearn里的封装好的各种算法使用前都要fit,fit相对于整个代码而言,为后续API服务。fit之后,然后调用各种API方法,transform只是其中一个API方法,所以当你调用transform之外的方法,也必须要先fit。 二.比较 1.有监督学习的算法fit(x,y)传两个参数。无监督学习的算法是fit(x),即传一个参数,比如降维、特征提取、标准化。 2.fit_t...

健康平安的活着的专栏 9592

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Python学习笔记(九)-- Python日期和时间

一、日期和时间

SuMFLOWERS的博客 608

fit_transform

转载来源:https://blog.csdn.net/appleyuchi/article/details/73503282 https://blog.csdn.net/weixin_38278334/article/details/82971752 https://www.cnblogs.com/keye/p/8875128.html 以上三个来源,由于现在还没学习到这,待以后慢慢整理。 (1)...

baidu_32683111的博客 6215

pandas数据处理基础之标准化与标签数值化

fit(): Method calculates the parameters μ and σ and saves them as internal objects. 解释:简单来说,就是求得训练集X的均值,方差,最大值,最小值,这些训练集X固有的属性。 transform(): Method using these calculated parameters apply the transfo...

mocas_wang的博客 5982

机器学习,错误踩坑

这可能是因为输入的字符串包含了非数字字符,或者是空格或其他不可识别的字符。sklearn.base包的时候,它的输出结果会自动转变成np数组,之后可以使用DataFrame(data)把数据集转化回来。问题算是numpy没有,转换成pd,用dataFrame()方法。(没全懂就不要写那么多,最多来个encoding来显示解码)仔细检查代码,查找并修复语法错误,基本上就是拼写问题。2、缩进错误:检查代码块的缩进是否正确。在读取csv文件时,写了一个参数。1、括号不匹配:括号数量不匹配。

lv0_0vl的博客 328

fit_transform transform有什么不一样

来对训练集进行拟合和转换。拟合过程会根据训练集数据计算并保存所需的转换参数,然后将训练集数据应用这些参数进行转换。这样做的目的是确保在后续对测试集或新数据进行转换时使用相同的转换参数。它会根据输入的数据计算所需的转换参数(例如均值、标准差等),然后将数据应用这些参数进行转换。得到的转换参数,将这些参数应用于新的数据,使其按照相同的转换方式进行处理。: 该方法仅对数据进行转换,不进行拟合过程。方法仅用于将数据按照已经拟合的转换器进行转换。方法用于拟合转换器并将数据进行转换,而。方法对测试集或新数据进行转换。

weixin_44943389的博客 1590

fit_transform()函数和transform()函数的区别

先来看fit和transform: enc = OneHotEncoder(sparse=False) enc.fit([[0, 0, 3], [1, 1, 0]]) ans = enc.transform([[0,0,3]]) print(ans) [[1. 0. 1. 0. 0. 1.]] 我的理解是fit这里就让算法针对数据集中的元素进行一个特征的抽取,类似于给一个小孩起小名前观察他的身高体重等特征 transform就针对你给定的某个元素给出算法对其的编码,类似于给一个小孩起了

weixin_42349817的博客 774

Python数据分析——Pandas数据预处理

Python数据分析——Pandas数据预处理 目录 特征选择/删除属性 缺失值处理 样本/数据选择 删除样本/数据 数据、属性、索引变换 字符型数据修改 数据合并、新增 1.特征选择/删除属性 (1)选择某个特征 features =['feature1','feature2','feature3','feature4'...] data = data[features] #往里传入的是列表!! #注意pandas的Dataframe[]里接受的是列表!!,直接输入属性名的时候别忘了两个[[]]

qq_44018760的博客 2227
上一篇: python 寻找list中最大值、最小值位置; reshpe(-1,1)提示,格式话出错,pandas copy深拷贝浅拷贝
下一篇: 1.Python保存字符串到文件 2.dir()函数 3.jieba分词 4.WordCloud词云包的安装
程序员椰子橙
博客等级 码龄9年 46粉丝 163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值