Python float和numpy float32之间的区别

The*_*eer 29 python numpy

内置float和有numpy.float32什么区别?

a = 58682.7578125
print type(a)
print a
print type(numpy.float32(a))
print numpy.float32(a)
Run Code Online (Sandbox Code Playgroud)

输出:

<type 'float'>
58682.7578125
<type 'numpy.float32'>
58682.8
Run Code Online (Sandbox Code Playgroud)

我在这里发现的numpy.float32是:

float32单精度浮点数:符号位,8位指数,23位尾数

没有找到内置float格式的内容.

Joh*_*nck 28

Python的标准float类型是C double:http://docs.python.org/2/library/stdtypes.html#typesnumeric

NumPy的标准numpy.float是相同的,也是一样的numpy.float64.

  • 请注意,`numpy.float`只是Python的`float`类型的别名.它不是像numpy.float64`那样的numpy标量类型.这个名称只是为了与numpy的早期版本向后兼容而暴露出来,这种版本不恰当地将`numpy.float64`暴露为`numpy.float`,当人们从numpy import*`中执行时会导致问题. (21认同)
  • 注意 a = np.float32(1), b = np.float64(1), c = np.float(1) 那么 type(a) 是 numpy.float32, type(b) 是 numpy.float64, type(c ) 是 float,isinstance(a, float) 是 False,isinstance(b, float) 是 True,isinstance(c) 也是 True。 (2认同)
  • @EricPostpischil:非常旧版本的 Python 字面意思是“浮点数是在 C 中使用 double 实现的。” 现在他们说“通常在 C 中使用 double 实现”,我认为它的意思是“大多数人使用用 C 编写的 Python 实现,并且‘double’是那里使用的类型。” 至于CPython,它总是使用`double`,源代码说“PyFloatObject表示一个(双精度)浮点数”。你知道一个使用本质不同的东西的实现吗? (2认同)
  • @9Guy:这个问题说明了“numpy.float32”是什么,并要求将它与内置的“float”进行比较。所以这个答案解释了内置的“float”是什么。 (2认同)