从数据文件中选择特定行
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画散点图
您好,我正在尝试从我的数据文件中提取一些满足我的条件的特定行。我的数据文件如下所示:
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画散点图