2017-01-23 65 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

'返回calc(start + 1)'不這樣做? @MooingRawr – Enigma

+1

如果你正在使用numpy,那麼只需使用numpy。 – Lagerbaer

回答