我正在为python中的以下语句编写一个while循环:
我有一个向量值函数,该函数返回带有x和y值的2x1数组
我想编写一个代码,以确保仅在函数给出的[x,y]小于[x,y]时才运行循环
我尝试使用a.all(),但是出现属性错误
还有另一种方法可以同时检查两个条件吗?
答案 0 :(得分:1)
我假设您代码中的array
是np.array
。
让我们定义数据a
,b
和c
。
a = np.array([[3], [2]]) #[[3], [2]]
b = np.array([[2], [1]])
c = np.array([[4], [1]])
如果我们进行以下比较,我们将获得
In [1]: a > b
Out[1]:
array([[ True],
[ True]])
In [2]: a > c
Out[2]:
array([[False],
[ True]])
由于您要确保两个条件都同时为真,因此可以使用内置的python all()
,只有在所有参数都为true时,Python才返回True。
In [3]: all(a > c)
Out[3]: False
In [4]: all(a > b)
Out[4]: True
答案 1 :(得分:0)
您可以这样做:
while all(abs(val) > err for val, err in zip(f(x, y), a):
...
或者这样:
while abs(f(x, y)[0]) > a[0] and abs(f(x, y)[1]) > a[1]:
...