2017-01-23 2 views
3

Ich habe dieses ArrayBerechnung Durchschnitt ohne Mindestwert, Array

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]]) 

Ich möchte den Durchschnitt jeder Zeile zurückkehren können, ohne den niedrigsten Wert (I verwendet bereits sort() und so im Grunde Ich will loswerden das erste Element jeder Zeile und führen sie dann die durchschnittliche

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

nicht wirklich viel von einem Code und der _array[::][1:] tut alles nicht wirklich, weil ich weit davon ausgehen kann, indem ich es falsch

bin mit 10

Eingangs
hw_grade_best(hw_grades)

Ausgang Ich möchte

Array ([89,25, 73,75, 90,5, 55,25, 61,5, 93,75])

+0

@ Jean-FrançoisFabre es die erste Reihe beseitigt – Enigma

Antwort

2

Sie benötigen das Array schneiden zu entfernen der Wert, dann können Sie die Mittelwertfunktion über die Achse anwenden:

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

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

0

Wenn Sie das tun:

_array[::][1:] 

Sie nichts tun, weil es nicht tut ändert das Array, gibt nur (nirgendwo), was Sie gefragt haben.

Sie sollten die zurückgegebene Array zugeordnet werden als:

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

oder nur den Mittelwert berechnen direkt darauf:

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