用python处理一个1G左右的数据集,运行速度非常慢,怎样优化
发布网友
发布时间:2022-05-08 07:18
我来回答
共1个回答
热心网友
时间:2022-04-18 03:58
这里面有两个原因吧:
首先, 是算法的问题。复杂度不一样的算法, 在数据规模大的情况下, 运行速度差别会越来越大。你没有描述具体算法, 所以我们也不知道能怎样提升算法。不过根据我的经验, 机器学习算法慢很正常, 因为计算量非常大。很多步骤如果你参照现成一些方法的话, 基本就已经是已知的在算法复杂度和代码复杂度上做了非常好的平衡而且算法复杂度已经很不错的方法。 要想再提高的话要么就要投入大量时间做学术研究,或者大量时间编写复杂的代码。
解决方法是你要自己分析你的程序, 确定每一个部分的复杂度大概是多少,找出算法的瓶颈, 然后花精力优化瓶颈上的算法。
第二个问题是众所周知的 python 本身速度慢的问题,python作为完全建立在解释器上的支持OO支持FP且类型dynamic的语言, 能使用的机器指令优化非常有限,一般认为比native程序慢10-100倍是正常的。
解决方法:一个快速的 work-around 是使用 JIT 编译器例如 PyPy, 速度可以提高大概几倍到10倍左右。 另外,使用一个 profile 技术找到运行时间的瓶颈, 可以把瓶颈部分用 C 重写,即可几乎达到native速度。
最后, 在这个多核和云时代, 你应该考虑多核甚至多机器了。 Python 本身又 GIL, 一个进程内不支持计算意义上的多线程, 把你的程序各个部件好好划分一下, 分解成多进程。 然后用一台机器的多个CPU同时跑, 或者仍给多台机器跑。
用python处理一个1G左右的数据集,运行速度非常慢,怎样优化
第一个办法,降低数据集的大小。python处理数据,如果数据结构中的数据超过2GB,通常都会很慢。如何降低数据集大小,需要修改算法。第二个办法,将数据结构采用数组array或者是numarray存贮。这样内存数量与查找效率都会提高。尽量不要使用大的dict。使用一个省内存的blist代替list 第三个办法,将数据通过共享...
用python处理一个1G左右的数据集,运行速度非常慢,怎样优化?
回答:给你几点个人的建议哈: 考虑拿C或C++重写. 考虑并行搞,找个hadoop集群,写成mapreduce程序跑 放在hadoop上跑,更多数据都不怕. 考虑升级机器,多搞点内存,然后东西尽量放在内存里搞. 考虑程序优化. 你得看看你程序慢在什么地方,可以按照以下步骤: 首先,确信你真的需要把全部数据过一遍。top一下,看...
python中1G的模型要加载多久的简单介绍
用python处理一个1G左右的数据集,运行速度非常慢,怎样优化第一个办法,降低数据集的大小。python处理数据,如果数据结构中的数据超过2GB,通常都会很慢。如何降低数据集大小,需要修改算法。第二个办法,将数据结构采用数组array或者是numarray存贮。这样内存数量与查找效率都会提高。尽量不要使用大的dict。...
python多少行够1gb(python一行太长)
importre importtime defprint_help():print'Usage:'print'pythonmem.py100MB'print'pythonmem.py1GB'if__name__=="__main__":iflen(sys.argv)==2:pattern=re.compile('^(\d*)([M|G]B)$')match=pattern.match(sys.argv[1].upper())ifmatch:num=int(match.group(1))unit=match.gro...
python读取2g数据要多久?
在使用的时候,最好是直接使用foriinf的方式来使用,在读取的时候,f本身就是一个迭代器,其实也就是f.read方法 Python存200w数据到数据库需要多久Python存200w数据到数据库需要474秒,因为正常的三万八千条数据仅需要9秒,以此类推出200万需要的时间。【python存数据库速度】1、需要从文本中读取三万...
python用numpy加载超过200M的文本数据就会报内存错误怎么办
1.使用numpy genfromtxt加载,成功读取完了,但数据变形了(2列的数据变一列了...)。看了一下genfromtxt源码,不过也是逐行读取文本并以tuple形式存入一个list中,解决不了根本问题啊。2.调大python的使用内存。觉得应该是python限制了可用内存,调大点应该有点效果,不过一直不知道有没有这个方法。3...
单个python脚本多少行合适
使用方法如下: pythonmem.py100M pythonmem.py1G1212Linux下Python脚本编写的quot;奇技淫巧quot; 「生命完美的答案,无非走过没有遗憾---《天蓝》」 「如何能够解析脚本运行命令行选项(位于sys.argv中)」 argparse模块可被用来解析命令行选项 常用来定义一个脚本的说明文档,一般我们写python脚本会通过if..else的方式...
python代码占用内存多少(python内存占用)
使用方法如下:pythonmem.py100M pythonmem.py1G1212 python最大能用多大存储空间这个是操作系统的限制,跟python没有直接关系,因为python是没有限制的。32位的系统:windows下单个进程可以用到2G内存;linux下单个进程可以用到4G内存。64位的系统:windows下单个进程IntelItanium-based可用到7TB,Windows8.1...
怎样电脑配置处理excel快处理大文件Excel运算的电脑配置那种合适_百度...
⑧ EXCEL带有大量公式的数据如何快速处理 Excel带有大量公式会导致运算速度变慢,想要运算速度变快的方法大致就两种方法:第一种方法是提升电脑配置;第二种方法利用编程来处理,如VBA、Python等。 ⑨ 怎样运行EXCEL表格更快一些呢 电子表格应该这样设置,设置后,速度会快很多;步骤一:首先我们打开要编辑的电子表格;步骤二...
python为何会内存超限,应该怎么改?
一般无法进行手工恢复,唯一的方法是用备份的分区表数据重新写回,或者从其他的相同类型的并且分区状况相同的硬盘上获取分区表数据,否则将导致其他的数据永久的丢失。在对主引导扇区进行操作时,可采用nu等工具软件,操作非常的方便,可直接对硬盘主引导扇区进行读写或编辑。当然也可采用de ...