Python 在if语句条件中使用数组

Python 在if语句条件中使用数组,python,arrays,if-statement,conditional-statements,Python,Arrays,If Statement,Conditional Statements,如何在if语句的条件部分使用数组?我希望程序检查每个元素的绝对值,并返回适当的部分。这给了一些希望: 但这种技术在我的情况下不起作用。 下面是我正在尝试的代码: def v(x,y): if x[abs(x)<a] and y[abs(y)<a]: return #something 1 if x[a<abs(x)<b] and y[a<abs(y)<b]: return

如何在
if
语句的条件部分使用数组?我希望程序检查每个元素的绝对值,并返回适当的部分。这给了一些希望:
但这种技术在我的情况下不起作用。 下面是我正在尝试的代码:

    def v(x,y):
        if x[abs(x)<a] and y[abs(y)<a]: 
            return #something 1
        if x[a<abs(x)<b] and y[a<abs(y)<b]:
            return #something 2
        if x[b<abs(x)<R] and y[b<abs(y)<R]:
            return #something 3

v中的值在正确的位置得到更新。

谢谢你的帮助

如果要检查每个元素的abslute值,请尝试以下操作:

if( abs(x[1]) >= 3) #or whatever you want to check
if( abs(x[2]) >= 4) #or whatever
如果x是要检查的数组。 我希望这能有所帮助。

尝试使用,如下所示:

import numpy

a = numpy.array([-1, -2, 1, 2, 3])
print(numpy.all(a > 0))
print(numpy.all(abs(a) > 0))
你会得到:

C:\Documents and Settings\XXX\Desktop>python test.py
False
True
因此,您的第一条if语句将变成这样(假设您有
import numpy
):

如果numpy.all(abs(x)
不起作用-是否出现异常?如果是这样,请发布完整的异常和堆栈跟踪。错误的结果?如果是这样,你期待什么?你得到了什么?如果你想让人们回答,你还应该给出一个完整的例子——包括一些预期输出的测试数据。这使得人们更容易提供帮助。强调x和y不是列表这一事实。我需要2D网格来绘制等高线图。什么是
x[abs(x)我得到了一个常见的错误:一个包含多个元素的数组的真值是不明确的。@PromitMoitra“not list”没有特别的帮助。它们是
numpy.array()
s?您是否建议询问者手动为数组的每个元素执行
if
语句?-1好吧,这似乎是他要求的,他说“我希望程序检查每个元素的绝对值”这就是我认为他想要的。您已经给出了检查特定元素的方法,而不是每个元素。小心不要混淆
numpy.all()
all()
内置。@Lattyware哇!很好,谢谢!这看起来也很有用,不过我不知道如何使用它:@thegrinner:找到解决方案了!检查编辑。谢谢你的帮助。
C:\Documents and Settings\XXX\Desktop>python test.py
False
True
if numpy.all(abs(x) < a) and numpy.all(abs(y) < a): 
    return #something 1