设为首页 加入收藏

TOP

Python 不是 C(二)
2015-08-31 21:24:10 来源: 作者: 【 】 浏览:67
Tags:Python
eturn best


我没有发现运行时间提高。我也尝试了更积极的编译参数设置:


@jit(nopython=True)
def closest_func(lat,lon,trkpts,func):
? ? d = 100000.0
? ? best = -1
? ? r = trkpts.index
? ? for i in r:
? ? ? ? lati = trkpts.ix[i,'Lat']
? ? ? ? loni = trkpts.ix[i,'Lon']
? ? ? ? md = abs(lat - lati) + abs(lon - loni)
? ? ? ? if d > md:
? ? ? ? ? ? #print d, dlat, dlon, lati, loni
? ? ? ? ? ? best = i
? ? ? ? ? ? d = md
? ? return best


这次运行代码时,出现一个错误:image


看来,pandas 比 numba 处理代码更智能。


当然,我也能花时间修改数据结构,使 numba 能正确编译(compile)。可是,我为什么要这么干呢??用 numpy 写的代码运行的足够快了。反正,我一直在用 numpy 和 pandas 。为什么不继续用呢?


也有建议我用pypy。这当然有意义,不过...我用的是托管服务器上的 Jupyter?notebooks(注,在线浏览器的 python 交互式开发环境)。我用的是它提供的 python 内核,也即,官方的(regular)Python 2.7.x 内核。并没有提供 Pypy 选择。


也有建议用?Cython。好吧,如果我回头要编译代码?,那我干脆直接用 C 和 C++ 就好了。我用 python,是因为,它提供了基于 notebooks(注:网页版在线开发环境)的交互式特性,可以快速原型实现。这却不是 Cython 的设计目标。


下面关于Python的文章您也可能喜欢,不妨看看:


英文原文:Python Is Not C


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇二叉树遍历算法总结(递归与非递.. 下一篇Java实现简单计算器源代码

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: