2017-01-23 231 views
3

我有這樣的陣列計算平均無最小值,陣列

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

我希望能夠在沒有最低值返回每個行的平均(我已經使用sort()所以基本上我想擺脫每一行的第一個元素,然後做的代碼的平均

def hw_grade_best(_array): 
    _array.sort() 
    _array[::][1:] 
    result = np.average(_array, axis=1) 
    return result 

並不是真正意義上和_array[::][1:]是不是真的做任何事情,因爲我可以迄今爲止我使用它錯

承擔10

輸入
hw_grade_best(hw_grades)

輸出欲

陣列([89.25,73.75,90.5,55.25,61.5,93.75])

+0

@讓FrançoisFabre它消除第一行 – Enigma

回答

2

您需要切片陣列以除去的值,那麼你可以應用軸上的平均函數:

hw_grades[:, 1:].mean(axis=1)

# array([ 89.25, 73.75, 90.5 , 55.25, 61.5 , 93.75])

0

當你這樣做:

_array[::][1:] 

你什麼都不做,因爲它沒有改變陣列,剛剛返回(無門)你問什麼。直接就可以

_array = _array[::][1:] 
result = np.average(_array, axis=1) 

或只是計算平均:

你應該返回數組指定爲

result = np.average(_array[::][1:], axis=1)