Мы работали над этой функцией, которая должна вычислять итоговые оценки для некоторых учащихся на основе их оценок в ряде заданий. Наш вход - это матрица NxM, содержащая оценки для N учащихся и M заданий (а оценка - это число). Предполагается, что функция выполняет 3 следующие вещи:
- Если имеется только одно назначение (M = 1), итоговая оценка должна совпадать с оценкой для этого назначения.
- если имеется два или более заданий, самый низкий балл отбрасывается, а итоговый балл рассчитывается как среднее значение M-1.
- если ученик получает оценку -3, итоговая оценка также должна быть -3.
Мы пробовали следующий код (roundGrades()
- еще одна созданная нами функция), но мы продолжаем получать ошибки.
Может кто-нибудь помочь решить эту проблему?
def computeFinalGrades(grades):
grades = np.array(grades)
SortData = np.sort(grades)
gradesFinal = np.zeros(np.size(grades, axis = 0))
for i in range(np.size(grades, axis = 0)):
if np.size(grades, axis = 1) == 1:
gradesFinal[i] = grades[i,0]
elif np.any(grades[i] == -3):
gradesFinal[i] = -3
else:
gradesFinal[i] = roundGrade([np.mean(SortData[i,1::])])[0]
return gradesFinal
Сообщение об ошибке, которое мы получаем прямо сейчас:
if np.size(grades, axis = 1) == 1:
File "C:\Users\h\Anaconda3\lib\site-
packages\numpy\core\fromnumeric.py", line 2931, in size
return a.shape[axis]
IndexError: tuple index out of range
Но программа также ранее жаловалась на строку, которая использует np.sort()
.