2016-09-23 149 views
3

numpy.floatとnumpy.float64には微妙な違いがあるようです。numpy.floatとnumpy.float64の違い

>>> import numpy as np 
>>> isinstance(2.0, np.float) 
True 
>>> isinstance(2.0, np.float64) 
False 

誰かがこれを明確にすることはできますか?ありがとう

+0

'numpy.float'はPythonのfloatクラスです。最後にアンダースコアで 'numpy.float_'を意味しますか?これは 'numpy.float64'と同じです。 – kennytm

+0

私はアンダースコアのないnumpy.floatを意味しました。あなたはあなたのコメントを精緻化しますか、多分答えになりますか? – zell

答えて

7

np.floatは、python floatタイプのエイリアスです。 np.float32およびnp.float64は、numpy固有の32および64ビット浮動小数点型です。あなたがisinstance(2.0, np.float)を行う際

float? 
Init signature: float(self, /, *args, **kwargs) 
Docstring:  
float(x) -> floating point number 

Convert a string or number to a floating point number, if possible. 
Type:   type 

np.float? 
Init signature: np.float(self, /, *args, **kwargs) 
Docstring:  
float(x) -> floating point number 

Convert a string or number to a floating point number, if possible. 
Type:   type 

np.float32? 
Init signature: np.float32(self, /, *args, **kwargs) 
Docstring:  32-bit floating-point number. Character code 'f'. C float compatible. 
File:   c:\python\lib\site-packages\numpy\__init__.py 
Type:   type 

np.float64? 
Init signature: np.float64(self, /, *args, **kwargs) 
Docstring:  64-bit floating-point number. Character code 'd'. Python float compatible. 
File:   c:\python\lib\site-packages\numpy\__init__.py 
Type:   type 

したがって、それは2.0としてisinstance(2.0, float)に相当し、プレーンfloat型で、内蔵のpython ...とないnumpyのタイプがあります。

は、明らかにTrueである。

-3

これは、32ビット浮動小数点数と64ビット浮動小数点数の違い(Cではfloatとdouble)が異なるように見えますが、2.0は32ビットの浮動小数点数になりますポイント番号。

+2

申し訳ありませんが、私はdownvoteする必要があります:あなたの答えは間違っているようです。私がちょうど試したことがここにあります:isinstance(1e200、np.float64)。これはfalseを与えます。また、isinstance(2.0、np.float32)もfalseを返します。 – zell

関連する問題