我真的是编程新手,我不知道如何使用Numpy数组在P**2之类的函数中进行操作。

import math
import numpy
span_x = numpy.array([0,250,500,750,1000])
P = span_x
example = P**2
span_y = [example for i in P]
y = float(input("Enter y: "))
bracket1 = min(span_y, lambda span_y: abs(span_y-y))
if bracket1 < y:
    for i in span_y:
        bracket2 = span_y[span_y.index(bracket1) + 1]
else:
    for i in span_y:
        bracket2 = span_y[span_y.index(bracket1) - 1]
print "Brackets: ", bracket1, bracket2


我试过不使用Numpy数组,但是收到TypeError。

我的主要问题是我要将此x值数组(span_x)放入类似P**2的函数中,并在数组中获取y值(span_y)。然后,用户输入y值,我想检查span_y中哪个y值最接近此输入,即bracket1bracket2是第二个最接近的y值。我希望有帮助!

最佳答案

span_y是一维数组的列表,因此min不能按预期工作并返回函数。之后,span_y.index(bracket1)引发异常。 span_y应该这样初始化

span_y = list(example)


in documention所述,将您的键函数(lambda)作为命名参数传递给min

bracket1 = min(span_y, key = lambda span_y: abs(span_y-y))

10-08 09:28