【问题标题】:Compare 2 multidimensional arrays using loops使用循环比较 2 个多维数组
【发布时间】:2017-07-01 19:49:30
【问题描述】:

我的任务是比较 2 组数据,每组数据都存储在 2 个单独的 csv 文件中。它们都包含 2 列,大约有数千个条目。我已经填充了 2 个单独的数组,但现在我想比较每个数组中的 1 列。我对 python 完全陌生,并且对比较两个数组的最佳方法感到非常困惑。

这是我当前的代码:

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 行不匹配,则循环继续比较下一对行

谢谢


【问题讨论】:

  • 所以你想要 element-wise 比较:一个布尔值列表,指定两个文件中的第 i 行是否相等?
  • 您得到什么错误和/或意外输出?
  • 是的,如果我的 2 个数组是:[A,B] 和 [C,D]。我想设置它,如果 B 和 C 相等,那么我最终可以找到 A 的值

标签: python loops numpy multidimensional-array


【解决方案1】:

小心,在 python 中,您的第一列是 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])) 

【讨论】:

  • 好吧,我运行了代码,它现在告诉我“解析时出现意外的 EOF”...
  • 嗬,我错过了打印行末尾的 ) 。对此感到抱歉
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-02
  • 1970-01-01
  • 2013-01-17
相关资源
最近更新 更多