>>> import numpy as np
>>> x = np.eye(3)
>>> x[1, 2] = .5
>>> x
array([[ 1. , 0. , 0. ],
[ 0. , 1. , 0.5],
[ 0. , 0. , 1. ]])
>>> 0 < x.any() < 1
False
>>>
我想检查numpy数组是否包含介于0和1之间的任何值。
我将
0 < x.any() < 1
解读为“如果存在大小大于0且小于1的任何元素,则返回true”,但显然不是这种情况。我该如何在numpy数组上进行算术比较?
ValueError:具有多个元素的数组的真值是模糊的。请使用a.any()或a.all()
。 - user2136786a<b<c
解释为a<b and b<c
,而对于numpy数组,我们需要将其解释为a<b & b<c
。 - shx2a&b
一样解释a and b
,从技术上讲可能是可行的(我想)。不过它没有这样做,这可能是一个总体上不错的选择 - 只是我经常会忘记这一点。 :) - Danicaand
和or
运算符。这不是NumPy的选择。 - shx2__bool__
/__nonzero__
来绕过它,但似乎不行。 - Danica