【发布时间】:2017-05-16 18:48:18
【问题描述】:
为了提高循环的性能,我使用了 Numba 向量化方法。
s1 = pd.Series([1,3,5,6,8,10,1,1,1,1,1,1])
s2 = pd.Series([4,5,6,8,10,1,7,1,6,5,4,3])
ding=pd.DataFrame({'A':s1,'B':s2})
@numba.vectorize(['float64(int16,int16)'])
def sumd(a,b):
if a==1:
return (a+b)
else:
return 0
ding['sum']=sumd(ding.A,ding.B)
现在我想返回一个附加变量,它是列 A 和 B 的乘积。即,我的目标是使用矢量化方法从函数中返回两个变量。我不确定如何初始化 numba.vectorize 方法。请帮我。我也愿意听取任何其他提高方法效率的方法。
我尝试过的另一种方法如下,但这对我来说似乎有点复杂。我正在寻找更简单的方法来优化功能。提前致谢。
s1 = pd.Series([1,3,5,6,8,10,1,1,1,1,1,1])
s2 = pd.Series([4,5,6,8,10,1,7,1,6,5,4,3])
ding=pd.DataFrame({'A':s1,'B':s2})
@numba.vectorize(['float64(int16,int16)'])
def sumd(a,b):
if a==1:
sumarr.append((a+b))
prodarr.append(a*b)
return 1
else:
sumarr.append(0)
prodarr.append(0)
return 1
sumarr=[]
prodarr=[]
sumd(ding.A,ding.B)
ding['sum']=sumarr
ding['prod']=prodarr
【问题讨论】:
标签: python performance python-2.7 optimization numba