Ich versuche, diesen Code zu verwenden, der den Bruchteil der Überlappung bei einer bestimmten Tiefe berechnet, um in verschiedenen Tiefen zu verwenden.Verwenden einer For-Schleife, um eine Funktion zu automatisieren
def score(list1, list2, depth):
len_list = len(list1)
frac = numpy.ceil(depth * len_list)
frac = int(frac)
s = slice(0,frac)
list1 = list1[s]
list2 = list2[s]
return len(set(list1)&set(list2))/float(len(set(list1) | set(list2)))
if __name__ == "__main__":
list1 = [2,4,6,8,10]
list2 = [1,2,3,4,5]
a = [numpy.arange(.01,1.01,.01)]
for i in a:
print(score(list1, list2, i))
Allerdings, wenn ich versuchen, diesen Code auszuführen ich eine Störung erhalte:
frac = int(frac)
TypeError: only length-1 arrays can be converted to Python scalars
was bedeutet, dass die variable Tiefe ist eigentlich eine Liste der Variablen ein (die [0,01, 0,02 ..etc]).
Wie würde ich das korrigieren, so dass die Funktion nur ein Argument des Parameters 'Tiefe' zu einem Zeitpunkt anstelle von dem, was wie die gesamte Liste scheint, nimmt?
Dank
Ich weiß fast nichts über numpy, aber was ist, wenn Sie 'a = numpy.arange (.01,1.01, .01)' '? Die Klammern scheinen überflüssig. – Kevin
Danke für den Fang – Labrat