今天我想知道如果两个列表之间存在匹配,如何获取两个列表的索引。我遇到了使用枚举和zip功能。但是如果两个列表长度相同,它们就可以工作。由于我的输入不同,我想获得两个列表的索引。
# Simulated Time(msec) Simulated O/p Actual Time(msec) Actual o/p
0 12.57 0 12.55
50 12.58 100 12.56
100 12.55 200 12.60
150 12.59 300 12.45
200 12.53 400 12.59
250 12.87 500 12.78
300 12.50 600 12.57
350 12.75 700 12.66
400 12.80 800 12.78
...... ...... ..... ......
此外,我的模拟数据位于不同的文件中,并以50Hz的速率生成数据,与我的实际数据不同。因此,模拟数据的长度比实际数据长。但实际数据存在于模拟数据中。我想得到这两个列表的索引。示例模拟时间(毫秒)100(i = 2)与实际时间的indice(j = 1)匹配。如果我得到i和j的索引,那么我可以比较该特定时刻的相应模拟输出和实际输出。
最后我想迭代到模拟时间结束。
请建议我该如何解决这个问题。
答案 0 :(得分:0)
如果sim
和act
包含唯一值,则可以使用numpy set例程np.in1d
来执行此操作:
sim=np.unique(np.random.randint(0,10,3))*10 #sample
act=np.unique(np.random.randint(0,10,5))*10 #sample
i=np.arange(len(sim))[np.in1d(sim,act)]
j=np.arange(len(act))[np.in1d(act,sim)]
print(sim,act,i,j)
#[40 50 70] [10 30 40 50] [0 1] [2 3]