创建元素列表,每个元素都带有科学记数法

时间:2016-05-18 19:18:13

标签: list python-2.7 scientific-notation

我有一个包含3个元素的numpy数组;从这个数组中,我想创建一个列表,其中每个元素都是科学记数法,而不是一个字符串。这似乎应该很容易,但我遇到了麻烦。我目前的脚本如下:

import numpy as np

ary = np.array([2.124598e+00, 9.1542e+00, 1.049e+00]) 
ary = ary.astype(np.float)
ary = ary.tolist()
ary = ['%.9e' % x for x in ary]
print(ary)
print(type(ary))

输出是:

['2.124598000e+00', '9.154200000e+00', '1.049000000e+00']
<type 'list'>

如何为每个元素维护科学记数法,并且具有非字符串元素类型?

编辑:此处的目标是创建输入文件,因此完成格式化以匹配已知输入文件的格式。我的理想输出如下:

[2.124598000e+00, 9.154200000e+00, 1.049000000e+00]
<type 'list'>

删除['%.9e' % x for x in ary]给了我以下内容,没有我正在寻找的科学记数法:

[2.124598, 9.1542, 1.049]
<type 'list'>

1 个答案:

答案 0 :(得分:0)

当您执行

时,实际上是将浮点列表ary转换为String列表
ary = ['%.9e' % x for x in ary]

最好在进一步的计算中继续使用numpy float数组的精度,然后格式化为输出结束时需要/想要的有效位数。