计算平均值没有最小值,数组

时间:2017-01-23 19:45:33

标签: python arrays

我有这个数组

 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:]并没有真正做任何事情因为我可以假设到目前为止我使用它错了

输入
 hw_grade_best(hw_grades)

输出我想要

  

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

2 个答案:

答案 0 :(得分:2)

您需要切片数组以删除值,然后您可以在轴上应用均值函数:

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

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

答案 1 :(得分:0)

当你这样做时:

_array[::][1:]

你什么都不做,因为它不会更改数组,只会返回(无处)你所要求的内容。

您应该将返回的数组指定为:

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

或直接计算平均值:

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