首页 > 解决方案 > 考试项目python,从数组中删除最小值

问题描述

下面是我到目前为止的代码(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

和描述:

输入 = 成绩:一个 N × M 矩阵,包含在 M 个不同作业中给予 N 名学生的 7 步等级的成绩。output=gradesFinal:一个长度为 n 的向量,其中包含 N 个学生中每个学生的最终成绩。

对于每个学生,最终成绩必须按以下方式计算:

  1. 如果只有一项作业 (M = 1),则最终成绩等于该作业的成绩。
  2. 如果有两个或多个作业(M > 1),则丢弃最低成绩。最终成绩计算为 M - 1 个最高成绩的平均值,四舍五入到量表上最接近的成绩(使用函数 roundGrade)。
  3. 不管上述情况如何,如果学生在一项或多项作业中的成绩为 -3,则最终成绩必须始终为 -3。

标签: pythonarrayspython-3.x

解决方案


Then np.remove or ndarray.remove functions does not exist. You should be using np.delete and end up with :

def computeFinalGrades(grades): 
    if -3 in grades: 
        gradesFinal= -3 
    elif len(grades)>=2 : 
        np.delete(grades, np.argmin(grades)) 
        finalgrade = np.mean(grades) 
        gradesFinal = roundGrade(finalgrade) 
    elif len(grades)==1: 
         gradesFinal = grades[0] # as Keredu said below 
    
    return gradesFinal

Where np.argmin returns the index of the smallest element in the numpy array.


推荐阅读