Я пытаюсь использовать этот код, который вычисляет долю перекрытия на определенной глубине, для использования на разных глубинах.Использование цикла for для автоматизации функции
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))
Однако, когда я пытаюсь запустить этот код, который я получаю сообщение об ошибке:
frac = int(frac)
TypeError: only length-1 arrays can be converted to Python scalars
Это означает, что переменная глубина фактически список переменной а (который [0,01, 0,02 ..и т.д]).
Как исправить это, чтобы функция принимала только один аргумент параметра «глубина» за раз, а не то, что похоже на весь список?
Благодаря
Я знаю почти ничего о numpy, но что, если вы сделали 'a = numpy.arange (.01,1.01, .01)'? Скобки кажутся излишними. – Kevin
Спасибо, что поймали эту – Labrat