我最近开始与一个团队合作,该团队的成员不同程度地喜欢 Python、R 和 Julia(按受欢迎程度排序)。我们正在将由不同团队成员构建的一组水文学模块翻译成一个公共库,我想在就我们应该为此选择哪种语言达成共识之前做一些基本的基准测试。问题是我对 Python 的了解很差,而且对 Julia 还很陌生,而且我相信由于糟糕的编码实践,我可能会导致结果出现偏差。
这些模块(代码如下)的结果是:Python(93 毫秒)、R(55 毫秒)和 Julia(0.5 毫秒)。代码无法矢量化(根据我的理解),所以我假设 Julia 最快,但不是 100 倍,而且我还假设 Python 会比 R 更快。
谁能指出效率方面的一些基本错误?
Python:
import numpy as np
def SM_routine_f(infiltration=None, PET=None, rcScl=0.1, rcExp=1.3, PETexp=2, Zr=1000, n=0.5, smhp=0.00, smwp=0.10, smfc=0.25, s0=0.5):
nt = len(infiltration)
SM_store = np.empty(nt+1)
SM_store[0] = s0
smhp_stor = Zr * smhp
smwp_stor = Zr * smwp
smfc_stor = Zr * smfc
max_stor = Zr * n
for i in range(nt):
thisSMstor = SM_store[i]
AET = np.where(thisSMstor > smhp_stor, …Run Code Online (Sandbox Code Playgroud)