元组索引超出范围?

2024-09-27 21:32:32 发布

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

我们一直在研究这个函数,这个函数应该是根据一些学生在一些作业中的成绩来计算他们的最终成绩。我们的输入是一个NxM矩阵,包含N个学生的成绩和M个作业(一个成绩是一个数字)。函数应执行以下3项操作:

  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()的行。你知道吗


Tags: 函数insizereturnifnp作业range

热门问题