2017-01-23 211 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)