将文本文件的列转换为科学记数法



我有一个包含一列和许多原始数据的文本文件(BBB.txt)。我想将所有数字转换为科学记数法。我正在尝试如下:

z= loadtxt ('BBB.txt')
for i in z:
with open ('ff.txt','w') as h:
y=np.format_float_scientific(z)
h.write("n".join(map(lambda z: '%f' % z, y)))

我将遇到一个错误"只有 size-1 数组可以转换为 Python 标量"。这里有什么问题?

文本文件如下所示,但包含更多原始文件:

0.000000
0.261869
0.980796
2.119419
3.218744
3.875440
-38.159080
-54.630055
-69.909509

您对 x,y,z,i 中的命名感到困惑。我总是建议您为变量使用长名称。下面的脚本将帮助您

import numpy as np
z = open('BBB.txt')
for i in z:
with open ('ff.txt','a') as h:
i=float(i)
y=np.format_float_scientific(i)
h.write(f"{y}n")

按照你的代码风格,你应该使用追加a来编写文件而不是w

我会把你想用科学记数法做什么留给你。这会将列转换为科学记数法。

import numpy as np
z= np.loadtxt ('BBB.txt')
with open("ff.txt", 'w') as file:
for i in z:
y=np.format_float_scientific(i)
file.write("{}n".format(y))

您尝试将整个文件转换为z。蟒蛇告诉你这是不可能的。z是大小大于 1 的数组

最新更新