python中迭代的递归

2024-09-28 23:38:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我们正在尝试对大量数据进行聚类分析。我们对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

Tags: 函数dataindexifdistabsdeltainner