1
ループのパフォーマンスを向上させるために、Numbaベクトル化メソッドを使用しました。2つの変数を返すために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の積である追加変数を返したいと思います。つまり、vectorizeメソッドを使用して関数から2つの変数を返すことです。 numba.vectorizeメソッドを初期化する方法がわかりません。私を助けてください。私は、方法の効率を改善するための他の方法も聞くことができます。
私が試した1つの代替アプローチは次のとおりですが、これは私にとっては少し難解でした。私は機能を最適化する簡単な方法を探しています。前もって感謝します。
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