2017-07-28 264 views
-1

任何人都可以解释这种行为吗?Numpy.array(None)返回None但不是None

print np.array(None) 
> None 
print np.array(None) is None 
> False 
+0

'print'输出不明确。事实上,两件事情打印相同并不意味着它们是相同的对象,或者甚至它们是平等的或者它们具有相同的类型。毕竟,'打印'无'和'打印无'打印同样的东西,但希望你不会感到惊讶的是,'无'!=无'。 – user2357112

+0

除了所有其他的答案,值得注意的是'np.array(1)'和'np.array(2)'具有相同的行为 – Wondercricket

回答

0

你确实有其字符串表示是没有一个数组对象,而不是你想的None对象:

>>> np.array(None) 
array(None, dtype=object) 
>>> str(_) 
'None' 

也正因为此,打印报表显示None

但是,你实际上做的是:

np.array(None) is None # False 
0

np.array(None)Noneprint只是将其打印为None

In [1]: a = np.array(None) 

In [2]: a 
Out[2]: array(None, dtype=object) 
1

您必须具有Nonestr()值的对象,所以这是打印的内容:

>>> import numpy as np 
>>> np.array(None) 
array(None, dtype=object) 
>>> str(np.array(None)) 
'None' 

这是用字母None一个字符串值。这与None单身物件不同,它只是看起来与打印时相同。

0

请解释你想要做什么。你所做的是询问np.array(None)是否为None类型,它不是,因此返回False。