我真的是编程新手,我不知道如何使用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值最接近此输入,即bracket1
。 bracket2
是第二个最接近的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))