计算不包含最小值的平均数,数组

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:]并没有实际作用,因为我可以肯定我使用它的方式是错误的。

输入
hw_grade_best(hw_grades)

我想要的输出

数组([ 89.25, 73.75, 90.5 , 55.25, 61.5 , 93.75])


@Jean-FrançoisFabre 它消除了第一行。 - Enigma
2个回答

2
你需要对数组进行切片以删除该值,然后可以沿轴应用平均函数: hw_grades[:, 1:].mean(axis=1) # 数组 [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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接