将具有多列的文件写入阵列

时间:2014-02-22 14:13:55

标签: python list

我有几个带有x和y值的文件,我想将它们同时绘制成一个图形。 为此,我想创建一个循环,程序写入x数据和y数据,这样我最终得到一个如下所示的数组:

results=[[x1],[y1],[x2],[y2],....]

之后我想在一张图中绘制所有数据,但颜色不同。这是自动的。

编辑:我的代码看起来就像这样:

#Program to show FFT intensitys of interfering waves with phase difference
path='pah_to_files'
files=['0pi.txt','0.25pi.txt','0.5pi.txt','0.75pi.txt','1pi.txt']

#read data
for i in range (len(files)):
    data=np.loadtxt(path+'/'+files[i], usecols=(0,1))
    position=data[:,0] #first column is position
    intensity=data[:,1] #second column is intensity

我知道这个循环读取文件,但它总是覆盖以前的位置和强度数据。

3 个答案:

答案 0 :(得分:1)

完成任务的更好方法是zip,如下所示:

x_values = [1,2,3,4,5]
y_values = ['a','b','c','d']
pairs_of_values = zip(x_values, y_values)

现在pairs_of_values[0]将是元组 (1,'a')

答案 1 :(得分:0)

以下行可用于按结果列出的方式填充结果列表:

results = [];
for x in range(10):
    y = x*x
    results.append([x])
    results.append([y])

print results

答案 2 :(得分:0)

抱歉,我现在使用Python已经4天了,我想我必须更加小心列表和数组....以下代码解决了我阅读文件的问题。

#Program to show FFT intensitys of interfering waves with phase difference
path='pah_to_files'
files=['0pi.txt','0.25pi.txt','0.5pi.txt','0.75pi.txt','1pi.txt']

results=[]

#read data
for i in range (len(files)): #all files which are tortured the folloing way
data=np.loadtxt(path+'/'+files[i], usecols=(0,1))

results.append(data[:,0]) #x-position
results.append(data[:,1]) #intensity