Pandas Apply 与 NumPy Vectorize 在列创建中的性能
简介
而 Pandas ' df.apply() 是一个用于在数据帧上操作的多功能函数,它的性能可能是一个问题,特别是对于大型数据集。 NumPy 的 np.vectorize() 提供了一种潜在的替代方案,用于根据现有列创建新列。本文研究了两种方法之间的速度差异,解释了为什么 np.vectorize() 通常更快。
性能比较
广泛的基准测试表明 np.vectorize( )始终明显优于 df.apply()。例如,在具有 100 万行的数据集中,np.vectorize() 在 2016 款 MacBook Pro 上速度提高了 25 倍。随着数据集大小的增加,这种差异变得更加明显。
底层机制
df.apply() 通过一系列 Python 级别的循环进行操作,这引入了重要的开销。每次迭代都涉及创建一个新的 Pandas Series 对象、调用该函数并将结果附加到新列。相比之下,np.vectorize() 利用 NumPy 的广播规则来评估数组上的函数。这种方法绕过了 Python 循环的开销,并利用了优化的 C 代码,从而加快了执行速度。
真正的向量化
对于真正的向量化计算,df.apply 都不是() 和 np.vectorize() 都不是最佳的。相反,本机 NumPy 操作提供了卓越的性能。例如,矢量化的 diverge() 比 df.apply() 或 np.vectorize() 显示出显着的性能优势。
使用 Numba 进行 JIT 编译
For为了获得更高的效率,可以使用 Numba 的 @njit 装饰器将 divide() 函数编译为高效的 C 级代码。这种方法进一步减少了执行时间,以微秒而不是秒为单位产生结果。
结论
虽然 df.apply() 提供了一个方便的接口来将函数应用于数据帧,对于大型数据集,其性能限制变得显而易见。对于性能关键型应用程序,NumPy 的 np.vectorize() 及其 Numba 中 JIT 编译的对应项为创建新列提供了卓越的速度。还值得注意的是,使用本机 NumPy 函数的真正向量化操作是大规模数据操作的最有效选择。
以上是Pandas Apply 与 NumPy Vectorize:哪个创建新列更快?的详细内容。更多信息请关注PHP中文网其他相关文章!

Arraysinpython,尤其是Vianumpy,ArecrucialInsCientificComputingfortheireftheireffertheireffertheirefferthe.1)Heasuedfornumerericalicerationalation,dataAnalysis和Machinelearning.2)Numpy'Simpy'Simpy'simplementIncressionSressirestrionsfasteroperoperoperationspasterationspasterationspasterationspasterationspasterationsthanpythonlists.3)inthanypythonlists.3)andAreseNableAblequick

你可以通过使用pyenv、venv和Anaconda来管理不同的Python版本。1)使用pyenv管理多个Python版本:安装pyenv,设置全局和本地版本。2)使用venv创建虚拟环境以隔离项目依赖。3)使用Anaconda管理数据科学项目中的Python版本。4)保留系统Python用于系统级任务。通过这些工具和策略,你可以有效地管理不同版本的Python,确保项目顺利运行。

numpyarrayshaveseveraladagesoverandastardandpythonarrays:1)基于基于duetoc的iMplation,2)2)他们的aremoremoremorymorymoremorymoremorymoremorymoremoremory,尤其是WithlargedAtasets和3)效率化,效率化,矢量化函数函数函数函数构成和稳定性构成和稳定性的操作,制造

数组的同质性对性能的影响是双重的:1)同质性允许编译器优化内存访问,提高性能;2)但限制了类型多样性,可能导致效率低下。总之,选择合适的数据结构至关重要。

到CraftCraftExecutablePythcripts,lollow TheSebestPractices:1)Addashebangline(#!/usr/usr/bin/envpython3)tomakethescriptexecutable.2)setpermissionswithchmodwithchmod xyour_script.3)

numpyArraysareAreBetterFornumericalialoperations andmulti-demensionaldata,而learthearrayModuleSutableforbasic,内存效率段

numpyArraySareAreBetterForHeAvyNumericalComputing,而lelethearRayModulesiutable-usemoblemory-connerage-inderabledsswithSimpleDatateTypes.1)NumpyArsofferVerverVerverVerverVersAtility andPerformanceForlargedForlargedAtatasetSetsAtsAndAtasEndCompleXoper.2)

ctypesallowscreatingingangandmanipulatingc-stylarraysinpython.1)usectypestoInterfacewithClibrariesForperfermance.2)createc-stylec-stylec-stylarraysfornumericalcomputations.3)passarraystocfunctions foreforfunctionsforeffortions.however.however,However,HoweverofiousofmemoryManageManiverage,Pressiveo,Pressivero


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3 Linux新版
SublimeText3 Linux最新版

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。