多重for循环如何提速
?
?
?思知群里面的一個問題
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
轉載于:https://www.cnblogs.com/www-caiyin-com/p/11286807.html
總結
以上是生活随笔為你收集整理的多重for循环如何提速的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【python】装饰器
- 下一篇: Springboot+Swagger