我使用numpy.genfromtxt
加载数组。我从数组中提取一个变量并将其保存到另一个.txt文件中,但输出将有许多尾随数字。
以下是我的脚本示例:
import numpy as np
import csv
data_points = np.genfromtxt('input_arrray.txt', dtype = None)
# dtype = None since the array contains numbers and strings
csvfile = "/home/User/Desktop/output_array.txt"
with open(csvfile, "w") as output:
writer = csv.writer(output, delimiter='\t')
for row in range(len(data_points)):
parameter = data_points[row][5]
writer.writerow([parameter])
假设input_array
中0.33625
的值output_array.txt
0.33624999999999999
writer.writerow(['%1.5f' % parameter])
要解决此问题我正在使用:
'%2.5f% parameter
但是,我对结果并不满意。我的原始数组由1900行和38列组成。我想从38中提取10列。但是当我使用{{1}}时,我的数据未对齐。
还有其他方法可以解决这个问题吗?
答案 0 :(得分:0)
您可以强制将原始数据保留为字符串:
data_points = np.gengromtxt('input_array.txt', dtype=str)
然后使用np.savetxt
使用fmt='%s`` to avoid the conversion
字符串 - >进行书写浮动`导致圆错:
np.savetxt('output.txt', data_points, fmt='%s')