我是 python 新手,一整天都在试图解决这个问题。我有一个数据文件,如下所示,
time I(R_stkb)
Step Information: Temp=0 (Run: 1/11)
0.000000000000000e+000 0.000000e+000
9.999999960041972e-012 8.924141e-012
1.999999992008394e-011 9.623148e-012
3.999999984016789e-011 6.154220e-012
(注:每条数据线之间不能有空行。)
我想使用 matplotlib 函数绘制数据,因此我需要数组中的两个单独的列。
我目前有
def plotdata():
Xvals=[], Yvals=[]
i = open(file,'r')
for line in i:
Xvals,Yvals = line.split(' ', 1)
print Xvals,Yvals
但显然这是完全错误的。任何人都可以给我一个简单的答案,并解释这些行的确切含义会很有帮助。干杯。
编辑:前两行在整个文件中重复。
这是一份工作*
上的运算符zip
method.
>>> asdf
[[1, 2], [3, 4], [5, 6]]
>>> zip(*asdf)
[(1, 3, 5), (2, 4, 6)]
因此,在您的数据上下文中,它可能类似于:
handle = open(file,'r')
lines = [line.split() for line in handle if line[:4] not in ('time', 'Step')]
Xvals, Yvals = zip(*lines)
或者如果您确实需要能够在事后改变数据,您可以调用list
每个元组的构造函数:
Xvals, Yvals = [list(block) for block in zip(*lines)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)