我有这个数组
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])
答案 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)