从数据文件中选择特定行

Choosing specific lines from a data file

您好,我正在尝试从我的数据文件中提取一些满足我的条件的特定行。我的数据文件如下所示:

10.0    950.0   123.315408      416.684182      60.0000004
10.0    900.0   125.687425      416.420677      60.0000004
10.0    875.0   126.577457      416.252579      60.0000004
12.0    950.0   122.791462      416.899612      60.0000004
12.0    925.0   124.181433      416.78099       60.0000004

我想打印出第二列值为 950.0 的行,然后从该文件中绘制。我认为首先将信息提取到文件中然后绘制它会更容易。如果可以在第二列不变的情况下绘制第一列和第三列,那将是完美的。

您的数据没有用制表符分隔,请检查一次。 请试试这个

x=[]
y=[]
for line in open("data.dat"):
    if line.split()[1]=='950.0':
        newdata.write(line)
        x.append(line.split()[1])

使用 numpy 很容易做到这一点。 numpy.loadtxt() will import your entire data file as a 2D numpy array. You can then make another array of only those lines in which the second column has some value with numpy.select(). You could turn this array from a list of rows to a list of columns with numpy.transpose(),这样可以很容易地 select 只有第一列和第三列,例如:

x=transposed_arr[0]
y=transposed_arr[2]

然后用matplotlib画散点图