我有一个包含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'>
答案 0 :(得分:0)
当您执行
时,实际上是将浮点列表ary转换为String列表ary = ['%.9e' % x for x in ary]
最好在进一步的计算中继续使用numpy float数组的精度,然后格式化为输出结束时需要/想要的有效位数。