2017-02-13 70 views
0

我的任務是比較2組數據,每組數據存儲在2個獨立的csv文件中。它們都包含大約數千個條目的2列。我填充了2個單獨的數組,但現在我想比較每個數組中的1列。我對python完全綠色,並且對比較2個數組的最佳方式感到非常困惑。比較使用循環的2個多維數組

這裏是我當前的代碼:

import numpy as np 
with open ('Flight_3_GPS.csv', 'r') as f: 
    GPS = [] #create an empty list 
    for line in f: 
     GPS.append([float(i) for i in line.strip('\n').split(',')]) 
    GPS = np.transpose(GPS) 
    #print(GPS[0][87]) #[column][row] 

with open ('Flight_3_V_Data.csv', 'r') as f: 
    Data = [] #create an empty list 
    for line in f: 
     Data.append([float(i) for i in line.strip('\n').split(',')]) 
    Data = np.transpose(Data) 
    #print(Data[1][56]) #[column][row] 

i=0 
j=0 
for i in GPS[i,1]: 
    for j in Data[j,1]: 
     if i == j: 
      print(j) 
      print(i) 

因此,如果第2行不匹配,則循環移動到比較下對行

感謝


+0

所以你想*元素明智*比較:布爾值列表指定是否* i *行在兩個文件中是相等的? –

+0

你得到了什麼錯誤和/或意外的輸出? – Aaron

+0

是的,如果我的2個數組是[A,B]和[C,D]。我想設置它,如果B和C是相等的,那麼我最終可以找到一個值爲A –

回答

1

要小心,在蟒蛇中,你的第一列是0而不是1.

for i,val_gps in enumarate(GPS[:,0]): 
    if val_gps == Data[i,0]: 
     print('GPSindex ' + str(i) + ' : ' + str(val_gps) ' matches with dataindex ' + str(i) + ' : ' + str(Data[i,0])) 
+0

好酷,我跑了代碼,它現在告訴我一個'意想不到的EOF解析'... –

+0

Ho ,我錯過了a)在打印線的末尾。對於那個很抱歉 – ymmx