Вот дополнительное решение (немного запутанное, но простое (грубая итеративная сила!))
EDIT: после разговора с автором вопроса я публикую полный код, который помог ему решить вопрос.
import numpy as np
result_vector = []
full_array = np.array(a) # I don't think I understand what a is here
for array in matrixGrades:
if -3 not in array:
array = array[~np.isnan(array)]
if len(array) == 1:
grade = roundedGrade(array[0])
else:
grade = math.floor((sum(array)-min(array))/(len(array)-1))
grade = roundGrade(grade)
else: #-3 is in the list
grade = -3
result_vector.append(grade)
print(result_vector)
def roundGrade(grades):
# possible grades
Grade=np.array([-3,0,2,4,7,10,12])
for i in range(len(grades)):
index=(np.abs(Grade-grades[i])).argmin()
gradeRounded = Grade[index]
return gradeRounded
вы, конечно, можете превратить список в вектор, используя np.array
...