gpt4 book ai didi

Python – ValueError : The truth value of an array with more than one element is ambiguous. 使用 a.any() 或 a.all()

转载 作者:太空宇宙 更新时间:2023-11-04 03:33:09 24 4
gpt4 key购买 nike

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

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)

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

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

关于Python – ValueError : The truth value of an array with more than one element is ambiguous. 使用 a.any() 或 a.all(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30271149/

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