ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

多重for循环如何提速

2019-08-02 10:03:49  阅读:282  来源: 互联网

标签:多重 NK 17 10 华中科技大学 提速 循环 2019 659324338


 

 

 思知群里面的一个问题

NK(659324338) 2019/8/1 10:44:51
有大神对numpy库熟悉的没
请教一个问题
NK(659324338) 2019/8/1 10:45:46

这种程序是否可以转化为矩阵运算而不使用双重for循环
NK(659324338) 2019/8/1 10:48:05

像这种程序效率太低了
彭震宇-CPDI(1679468600) 2019/8/1 10:55:03
没事 你用numba
可以自动优化循环过程
快得起飞
暨大-入门(1242441055) 2019/8/1 10:56:52
先把content 里面的组合(i,j)生成
死鬼-深圳<diator@qq.com> 2019/8/1 11:07:23
@彭震宇-CPDI numba真的是个神器啊
彭震宇-CPDI(1679468600) 2019/8/1 11:14:49
而且非常方便加个装饰器就能加速特别多
彭震宇-CPDI(1679468600) 2019/8/1 11:15:14
只要程序里循环和数值运算特别多的话

欧皇阿枫(67106362) 2019/8/1 11:18:35
这话问的
天知道啊
我就没下载过python
而且这和你网速相关
彭震宇-CPDI(1679468600) 2019/8/1 11:19:37
我都是直接下anaconda  用它自带的那个python
人工智能网www.aiaor.com<liuvean@qq.com> 2019/8/1 14:48:27

hustxun-华中科技大学(252472925) 2019/8/1 16:59:51
@NK 不知道加速会怎么样,到你这个程序实在是太低效,太多无用运算
NK(659324338) 2019/8/1 17:01:21
这个需要更深层次优化,即便采用numba,好像速度提升不明显
NK(659324338) 2019/8/1 17:02:10
@hustxun-华中科技大学 
不过numba也是一种思路
从语言层面优化程序
但是如果程序写的太烂,语言层面优化还是有限的
NK(659324338) 2019/8/1 17:04:43
https://stackoverflow.com/questions/20574257/constructing-a-co-occurrence-matrix-in-python-pandas#comment30776786_20574460
Stack Overflow上有人给出了好的方案,就是我想要的
全部转换为矩阵操作
hustxun-华中科技大学(252472925) 2019/8/1 17:05:16
反向思路啊,转换为“填表”过程就可以了,准备一个N*N的空表,依次对content中每个line的每个每个元素,通过字典查找它第i行j列,加一就行吧
NK(659324338) 2019/8/1 17:08:34
你说的我也试过,上面那种有提升,但还不是最优
NK(659324338) 2019/8/1 17:10:22

@hustxun-华中科技大学 最优的应该是Stack Overflow上面的回答
目前我看到的最优的是Stack Overflow上的回复
hustxun-华中科技大学(252472925) 2019/8/1 17:14:38
没细看,还没看懂最后一个dot的功能,但是有个K[i,j]+=1,应该是可以的,这个就是填表操作
NK(659324338) 2019/8/1 17:16:14
上面的如果改为Python列表解析式不知道效率如何?
hustxun-华中科技大学(252472925) 2019/8/1 17:17:46
不用太在意这个吧,关键是算法不能太抵消,尽量避免重复操作,太低层的操作优化都得转换为c语言
NK(659324338) 2019/8/1 17:19:13
作为coder,我们应该要有一种朝着完美进军的目标呀
hustxun-华中科技大学(252472925) 2019/8/1 17:20:04

标签:多重,NK,17,10,华中科技大学,提速,循环,2019,659324338
来源: https://www.cnblogs.com/www-caiyin-com/p/11286807.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有