计算无最小值的平均值,数组

2024-04-26 18:06:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个阵列

 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)

我想要的输出

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


Tags: 元素returndefnpresultsortarray平均值
2条回答

当您这样做时:

_array[::][1:]

你什么也不做,因为它不改变数组,只返回你所要求的内容。你知道吗

应将返回的数组指定为:

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

或者直接计算平均值:

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

您需要对数组进行切片以删除值,然后可以跨轴应用平均值函数:

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

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

相关问题 更多 >