递归到python中的迭代

时间:2017-07-22 21:02:51

标签: python recursion iteration

我们正在尝试对大量数据进行聚类分析。我们是python的新手,发现迭代函数比递归函数更有效。现在我们正试图改变它,但它比我们想象的要难。

下面的代码是我们集群功能的核心。这占了90%的时间。你能帮我们把它变成一个递归的吗?

一些额外的信息:taunach函数获取我们的点的邻居,稍后将形成集群。问题是我们有很多要点。

def taunach(tau,delta, i,s,nach,anz):
    dis=tabelle[s].dist
    #delta=tau
    x=data[i]
    y=Skalarprodukt(data[tabelle[s].index]-x)
    a=tau-abs(dis)
    #LA.norm(data[tabelle[s].index]-x)
    if y<a*abs(a):
        nach.update({item.index for item in tabelle[tabelle[s].inner:tabelle[s].outer-1]})
        anz = anzahl(delta, i, tabelle[s].inner, anz)
        if dis>-1:
            b=dis-tau
            if y>=b*abs(b):#*(1-0.001):
                nach,anz=taunach(tau,delta, i,tabelle[s].outer,nach,anz)
    else:
        if y<tau**2:
            nach.add(tabelle[s].index)
            if y < delta:
                anz += 1
        if tabelle[s].dist>-4:
            b = dis - tau
            if y>=b*abs(b):#*(1-0.001)):
                nach,anz=taunach(tau,delta, i,tabelle[s].outer,nach,anz)
            if tabelle[s].dist > -1:
                if y<=(dis+tau)**2:
                    nach,anz=taunach(tau,delta, i,tabelle[s].inner,nach,anz)
    return nach,anz

0 个答案:

没有答案