使用numpy

时间:2017-08-27 13:53:41

标签: python numpy

我正在尝试编写一个程序,打开一个只包含行和列中的数字的文本文件,以将它们保存在新文件中。我选择列的部分工作,而行的部分不工作。我必须选择条件为x>的行。 10e13(其中x是特定列中的值)。 我有一些问题,特别是在行选择方面。 由于它们是非常大的文件,我被建议使用numpy,所以我想以这种方式运行代码。 这是我写的代码:

import numpy as np

matrix = np.loadtxt('file.dat') 

#select columns
column_indicies = [0] 
selected_columns = matrix[:,column_indicies]

x=1E14    #select lines
for line in matrix:
   if float(line) > x:
      #any ideas?

selected_matrix = matrix[selected_lines,selected_columns]

np.savetxt('new_file.dat', selected_matrix, fmt='%1.4f') 

这是我输入数据的一小部分:

185100000000000.0000
121300000000000.0000
257800000000000.0000
43980000000000.0000

1 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点。以下是您可能想要尝试的内容,它与您已经采取的方向相同:

matrix = <your matrix>
new_matrix = np.array([]).reshape(matrix.shape)
column_index = <the column index you want to compare>
x = 1E14
for line in range(matrix.shape[0]):
    if matrix[line][column_index] > x:
         new_matrix.append(matrix[line])

希望这是有道理的。我们只将这些行附加到符合您条件的新矩阵。我没有运行代码,因此可能存在一些小错误。但是,我希望你能够了解如何完成这项任务。