我有一个包含一列和许多原始数据的文本文件(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 的数组