繁体   English   中英

如何工作“如果np.array([False]):”

[英]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, 0False也是如此

>>> 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数组中不应有多个项如果您正在执行ifbool

如果有多个元素,则必须使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM