下面是到目前为止我的代码(computeFinalGrades
)
在代码内部,我正在使用另一个代码(roundGrade
-这很有效)
我得到错误代码AttributeError: 'numpy.ndarray' object has no attribute 'remove'
下面您还可以看到作业的说明
我已经尝试过在这里寻找任何解决方案,但我发现这些方案不能正常工作。 如果你们有更好的解决方案,欢迎分享
import numpy as np
from gradesRounded import roundGrade
def computeFinalGrades(grades):
if -3 in grades:
gradesFinal= -3
elif len(grades)>=2:
grades.remove(min(grades))
finalgrade = np.mean(grades)
gradesFinal = roundGrade(finalgrade)
elif len(grades)==1:
gradesFinal = grades
return gradesFinal
#print((computeFinalGrades(np.array([[7,4,10],[7,4,12]])))) - this is the testcode
圆度代码:
def roundGrade(grades):
gradesRounded = []
for grades in grades:
if (-5 <grades<- 1.5):
grade = '-3'
elif (-1.5 <=grades< 1.5):
grade = '00'
elif (1.5 <=grades< 3):
grade = '02'
elif (3 <=grades< 5.5):
grade = '4'
elif (5.5 <=grades< 8.5):
grade = '7'
elif (8.5 <=grades< 11):
grade = '10'
elif (11 <=grades< 15):
grade = '12'
gradesRounded.append(grade)
return gradesRounded
和说明:
input = grades: An N × M matrix containing grades on the 7-step-scale given to N students on M different assignments. output= gradesFinal: A vector of length n containing the final grade for each of the N students.
For each student, the final grade must be computed in the following way:
- If there is only one assignment (M = 1) the final grade is equal to the grade of that assignment.
- If there are two or more assignments (M > 1) the lowest grade is discarded. The final grade is computed as the mean of M − 1 highest grades rounded to the nearest grade on the scale (using the function roundGrade).
- Irrespective of the above, if a student has received the grade −3 in one or more assignments, the final grade must always be −3.
正如错误中所说,numpy没有删除方法。您可以从numpy数组强制转换为list,然后使用remove方法。根据您提供的注释和代码:
如果我们调用
computeFinalGrades(np.array([[7,4,10],[7,4,12]]))
,它将返回:['10', '10']
那么
np.remove
或ndarray.remove
函数就不存在了。您应该使用np.delete
并以以下内容结束:其中
np.argmin
返回numpy数组中最小元素的索引相关问题 更多 >
编程相关推荐