numpy和numpy的区别.Float和numpy.float64



numpy.floatnumpy.float64之间似乎有细微的差别。

>>> import numpy as np
>>> isinstance(2.0, np.float)
True
>>> isinstance(2.0, np.float64)
False
有人能解释一下吗?由于

np.float是python float类型的别名。np.float32np.float64是numpy特定的32位和64位浮点类型。

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:pythonlibsite-packagesnumpy__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:pythonlibsite-packagesnumpy__init__.py
Type:           type

因此,当你执行isinstance(2.0, np.float)时,它相当于isinstance(2.0, float),因为2.0是一个普通的python内置float类型…而不是numpy类型。

isinstance(np.float64(2.0), np.float64)显然是True

这似乎是32位浮点数和64位浮点数之间的区别(在C中,是浮点数与双精度数),而2.0最终是32位浮点数。

最新更新