元组索引超出范围?

时间:2019-06-25 16:01:35

标签: python python-3.x numpy

我们一直在研究此功能,该功能应根据一些作业的成绩为某些学生计算最终成绩。我们的输入是一个NxM矩阵,其中包含N个学生和M个作业的分数(分数是一个数字)。该功能应该执行以下三件事:

  1. 如果只有一个作业(M = 1),则最终成绩必须与该作业的成绩相同。
  2. 如果有两个或两个以上的作业,则最低的成绩将被丢弃,最终成绩将作为M-1的平均值计算。
  3. 如果学生获得-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()的行。

0 个答案:

没有答案