2017-01-23 3 views
0

Итак, я работаю с numpy, и меня попросили создать функцию, которая возвращает входные слова «классы учеников» как среднее значение оценок на карте без использования цикла и единственное, что пришло мне в голову, чтобы сделать это возможным рекурсиюрекурсия не работает для меня

def hw_grade_average(_array): 
    condition=len(_array) 
    stop=condition 
    start=0 
    outp=[] 
    def calc(inp): 
     if stop-1==inp: 
      return outp 
     if stop!=inp: 
      calc=float(sum(_array[start]))/float(len(_array[start])) 
      outp.append(calc) 
     return calc(inp+1) 
    _returned = np.asarray(outp,dtype=float) 
    return calc(start) 

на входе для примера

hw_grade_average(hw_grades) 

где

hw_grades= 
      array([[ 57, 99, 100, 81, 77], 
        [ 70, 91, 57, 77, 56], 
        [ 74, 89, 62, 100, 99], 
        [ 61, 53, 42, 65, 21], 
        [ 81, 65, 40, 37, 60], 
        [ 75, 88, 100, 92, 95]]) 

Выход Я ищу это

array([82.8, 70.2, 84.8, 48.4, 56.5, 90. ])

, но я получаю, что

TypeError: 'float' object is not callable

+0

Просто 'hw_grades.mean (axis = 1)'? – Divakar

+1

'return calc (start + 1)', который этого не делает? @MooingRawr – Enigma

+1

Если вы работаете с numpy, просто используйте numpy. – Lagerbaer

ответ

Смежные вопросы