[英]How to work “if np.array([False]):”
以下代码的输出为NOTHING 。
if np.array([False]):
print("hello")
尽管我尝试搜索它,但我不知道它是如何工作的。 Python if
可以重载?
以下是纯数组的情况。
if [False]:
print("hello")
输出是hello
你能告诉我如何编码np.array吗?
看来np.array([])返回False, 0
和False
也是如此
>>> bool(np.array([]))
False
>>> bool(np.array([0]))
False
>>> bool(np.array([False]))
False
如果列表中有任何项目,则此处返回true。
>>> bool([False]) ### the returned boolean value is based on the length of the list.
True
我注意到的一件事是, if np.array([False])
或bool(np.array([False])
返回数组中唯一项的布尔值,那么在numpy数组中不应有多个项如果您正在执行if
或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
>>>
if [False]:
始终为True
因为[Flase]
是一个包含一项的列表(即非空),因此将输入if
块,您将看到print
调用的输出。
np.array([False])
返回numpy.ndarray
,在这种情况下,其结果为False
,因此将永远不会输入if
块,并且您将看不到任何输出。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.