2017-07-28 34 views
-1

誰でもこの現象を説明できますか? print文はNoneを示した理由ですNumpy.array(None)はNoneを返しますが、Noneではありません。

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

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

'print'の出力があいまいです。 2つのものが同じものをプリントしているということは、それらが同じオブジェクトであることを意味しているわけではなく、同じオブジェクトでも、同じタイプでも同じであるという意味ではありません。結局のところ、 '' None ''と' 'Print None''は同じものを出力しますが、あなたは' 'None'!= None''ということに驚かないでしょう。 – user2357112

+0

その他の回答に加えて、 'np.array(1)'と 'np.array(2)'は同じ振る舞いをしている – Wondercricket

答えて

0

あなたが実際には配列の文字列表現がNoneのオブジェクトではなく、あなたが思うようNoneオブジェクトを持っています。

しかし、あなたが実際にやっていることは次のとおりです。

np.array(None) is None # False 
0

np.array(None)Noneではありません。 printは単にNoneと表示します。

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

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

それが印刷されているものですので、あなたは、str()値としてNoneを持つオブジェクトを持っている:

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

手紙Noneと文字列値だこと。これはNoneシングルトンオブジェクトと同じではなく、と表示されたときにはと同じに見えます。

0

あなたが探していることを説明してください。あなたがしたのは、np.array(None)がNone型であるかどうかを調べることです。そうでない場合、Falseが返されます。

関連する問題