zoukankan      html  css  js  c++  java
  • 多重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

  • 相关阅读:
    组合,封装与多态
    继承与派生
    面向对象基础练习
    面向对象基础
    类与对象
    数组与pandas模块
    Flask基础(15)-->模板代码的复用【宏(Macro)、继承(Block)、包含(include)】
    Flask基础(14)-->自定义过滤器
    Flask基础(13)-->Flask扩展Flask-Script
    Flask基础(12)-->请求上下文和应用上下文
  • 原文地址:https://www.cnblogs.com/www-caiyin-com/p/11286807.html
Copyright © 2011-2022 走看看