gpt4 book ai didi

python - 如何将数字四舍五入为选定的整数

转载 作者:IT老高 更新时间:2023-10-28 21:14:58 25 4
gpt4 key购买 nike

在丹麦,我们有一个奇怪的评分系统,如下所示。 [-3,00,02,4,7,10,12]我们的任务是取一个具有不同十进制数的向量,并将其四舍五入到最接近的有效等级。到目前为止,这是我们的代码。

import numpy as np

def roundGrade(grades):
if (-5<grades<-1.5):
gradesRounded = -3
elif (-1.5<=grades<1.5):
gradesRounded = 00
elif (1.5<=grades<3):
gradesRounded = 2
elif (3<=grades<5.5):
gradesRounded = 4
elif (5.5<=grades<8.5):
gradesRounded = 7
elif (8.5<=grades<11):
gradesRounded = 10
elif (11<=grades<15):
gradesRounded = 12
return gradesRounded

print(roundGrade(np.array[-2.1,6.3,8.9,9]))

我们的控制台似乎不喜欢这样并重新调整:TypeError: builtin_function_or_method' 对象不可下标

感谢所有帮助,如果您有更聪明的方法,欢迎您将我们置于我们的位置。

最佳答案

您收到该错误是因为您在打印时使用了不正确的语法:

print(roundGrade(np.array[-2.1,6.3,8.9,9]))

需要

print(roundGrade(np.array([-2.1,6.3,8.9,9])))

注意额外的括号:np.array(<whatever>)

但是,这不起作用,因为您的函数需要一个数字。幸运的是,numpy 提供了一个可以为你解决这个问题的函数:

In [15]: roundGrade = np.vectorize(roundGrade)

In [16]: roundGrade(np.array([-2.1,6.3,8.9,9]))
Out[16]: array([-3, 7, 10, 10])

http://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.vectorize.html

关于python - 如何将数字四舍五入为选定的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37877895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com