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

Python “如何工作”;如果np.array([False]):";,python,numpy,Python,Numpy,以下代码的输出为无 if np.array([False]): print("hello") 虽然我试图寻找它,但我不知道它是如何工作的。如果,Python会过载吗 下面是纯数组的一个例子 if [False]: print("hello") 输出为hello 你能告诉我如何对np.array进行编码吗?如果[False]:将始终是True,因为[Flase]是一个包含一个项目的列表(即非空),因此将输入如果块,您将看到打印调用的输出 np.array([False]) 返回一个nu

以下代码的输出为无

if np.array([False]):
  print("hello")
虽然我试图寻找它,但我不知道它是如何工作的。如果,Python会过载吗

下面是纯数组的一个例子

if [False]:
  print("hello")
输出为
hello


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

如果[False]:
将始终是
True
,因为
[Flase]
是一个包含一个项目的列表(即非空),因此将输入
如果
块,您将看到
打印
调用的输出

np.array([False])


返回一个
numpy.ndarray
,在本例中,它的计算结果为
False
,因此将永远不会输入
if
块,并且您将不会看到任何输出

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

np.array([False])

返回一个
numpy.ndarray
,在本例中,它的计算结果为
False
,因此将永远不会输入
if
块,并且您将不会看到任何输出

似乎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
似乎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])
返回数组中唯一项的bool。如果执行
if
bool
,则numpy数组中不应该有多个项

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

>>如果np.array([False,False]):
…打印的'
... 
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:包含多个元素的数组的真值不明确。请使用a.any()或a.all()
>>>bool(np.array([False,False]))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:包含多个元素的数组的真值不明确。请使用a.any()或a.all()
>>>
>>>
>>>bool(np.数组([False,232]))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:包含多个元素的数组的真值不明确。请使用a.any()或a.all()
>>>
>>>
>>>bool(np.array([False,232]).any())
真的
>>> 

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

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

>>如果np.array([False,False]):
…打印的'
... 
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:包含多个元素的数组的真值不明确。请使用a.any()或a.all()
>>>bool(np.array([False,False]))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:包含多个元素的数组的真值不明确。请使用a.any()或a.all()
>>>
>>>
>>>bool(np.数组([False,232]))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:包含多个元素的数组的真值不明确。请使用a.any()或a.all()
>>>
>>>
>>>bool(np.array([False,232]).any())
真的
>>> 

是的,你可以在Python 3和Python 2中重写它。非常感谢!!你的回答让我明白。你为什么要这样做?在if表达式中使用numpy数组几乎从来没有像人们期望的那样有效。是的,你可以在Python 3和Python 2中重写它。非常感谢!!你的回答让我明白。为什么尝试这样做?在if表达式中使用numpy数组几乎从来没有像人们期望的那样有效。