2017-07-28 226 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。