一つのこと... Falseを返すので、それが任意の項目を持っている場合は、リストがtrueを返す。ここ0
とFalse
>>> bool(np.array([]))
False
>>> bool(np.array([0]))
False
>>> bool(np.array([False]))
False
のために行う([])np.arrayようです私は気づいたif np.array([False])
またはbool(np.array([False])
は、配列内の唯一の項目のboolを返します。 if
またはbool
を実行している場合、numpy配列に複数の項目があるはずがありません。
つ以上の要素がある場合は、[はい、あなたはhttps://docs.python.org/3.1/reference([ `__bool__`]を使用して、それをオーバーライドすることができa.any()
またはa.all()
>>> if np.array([False, False]):
... print 's'
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
>>> bool(np.array([False, False]))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
>>>
>>>
>>> bool(np.array([False, 232]))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
>>>
>>>
>>> bool(np.array([False, 232]).any())
True
>>>
を使用する必要があります/datamodel.html#object.__bool__)をPython 3に、['__nonzero__'](https://docs.python.org/2/reference/datamodel.html#object.__nonzero__)をPython 2に追加しました。 –
ありがとう!!あなたは私に理解させる答えをします。 – redstone
なぜあなたはこれを試していますか? if式でnumpy配列を使うと、人々が期待するようにほとんど動作しません。 – hpaulj