gpt4 book ai didi

python - 使用 dtype=float32 的科学计数法的 string.format 错误

转载 作者:太空宇宙 更新时间:2023-11-03 15:18:26 25 4
gpt4 key购买 nike

为什么会这样

print "{:e}".format(array([1e-10],dtype="float64")[0])
1.000000e-10

但不是这个?

print "{:e}".format(array([1e-10],dtype="float32")[0])
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-29-9a0800b4df65> in <module>()
----> 1 print "{:e}".format(array([1e-10],dtype="float32")[0])

ValueError: Unknown format code 'e' for object of type 'str

更新:我尝试使用 numpy 版本 1.6.1 和 Python 2.7.3。

me@serv8:~$ python -V
Python 2.7.3
me@serv8:~$ python -c "import numpy; print numpy.__version__"
1.6.1
me@serv8:~$ python -c "from numpy import array; print \"{:e}\".format(array([1e-10],dtype=\"float32\")[0])"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ValueError: Unknown format code 'e' for object of type 'str'

最佳答案

Numpy 错误 #1675

这是在 Numpy 1.6.2 中修复的错误 (Change log here) .

分析

嗯...看起来我们可以得到类型:

>>> from numpy import array
>>> a64 = array([1e-10],dtype="float64")[0]
>>> a32 = array([1e-10],dtype="float32")[0]
>>> type(a32)
<type 'numpy.float32'>
>>> type(a64)
<type 'numpy.float64'>

那么,让我们现在尝试打印:

>>> print a32
1e-10
>>> print a64
1e-10

好的,这似乎有效。让我们尝试使用指数符号打印:

>>> print('{0:e}'.format(a64))
1.000000e-10
>>> print('{0:e}'.format(a32))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: Unknown format code 'e' for object of type 'str'

通过谷歌搜索,我发现了与错误 #1675 的类似引用,该错误据称已在 Numpy 1.6.2 版中修复。 (Change log here)

基于此,我随后安装了1.6.2并尝试了您上面的尝试。有用。

>>> from numpy import array
>>> print "{:e}".format(array([1e-10],dtype="float64")[0])
1.000000e-10
>>> print "{:e}".format(array([1e-10],dtype="float32")[0])
1.000000e-10

关于python - 使用 dtype=float32 的科学计数法的 string.format 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18850907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com