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

时间:2016-09-08 11:20:57

标签: python numpy

以下代码的输出为 NOTHING

if np.array([False]):
  print("hello")

虽然我试图搜索它,但我不知道它是如何工作的。 Python可以重载if吗?

以下是纯数组的情况。

if [False]:
  print("hello")

输出为hello

你能告诉我如何编码np.array吗?

3 个答案:

答案 0 :(得分:2)

似乎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

答案 1 :(得分:2)

我注意到的一件事是deflatestreamif np.array([False])返回数组中唯一项目的bool。如果您正在执行bool(np.array([False])if,则不应该在numpy数组中包含多个项目。

如果有多个元素,则必须使用boola.any()

a.all()

答案 2 :(得分:1)

if [False]:始终为True,因为[Flase]是包含一个项目的列表(即非空),因此将输入if块,您将查看print来电的输出。

np.array([False])

返回numpy.ndarray,在这种情况下评估为False,因此永远不会输入if块,您将看不到任何输出。