使用numpy从数组中提取的变量的精度

时间:2014-03-07 10:29:09

标签: python arrays numpy

我使用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_array0.33625的值output_array.txt 0.33624999999999999 writer.writerow(['%1.5f' % parameter])

要解决此问题我正在使用:

'%2.5f% parameter

但是,我对结果并不满意。我的原始数组由1900行和38列组成。我想从38中提取10列。但是当我使用{{1}}时,我的数据未对齐。

还有其他方法可以解决这个问题吗?

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')