如果使用python2.7在两个不同长度的列表之间存在唯一的匹配,那么如何获得它们的索引

2024-05-16 02:16:30 发布

您现在位置:Python中文网/ 问答频道 /正文

今天我想知道当两个列表之间存在匹配时,如何获取它们的索引。我遇到了枚举和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

   ......                    ......          .....               ......

而且我的模拟数据在不同的文件中,生成数据的速率与我的实际数据不同。因此,模拟数据比实际数据长。但实际数据存在于模拟数据中。我想得到这两个列表的索引。示例模拟时间(msec)100(i=2)与实际时间的指示符(j=1)匹配。如果我得到I和j的指数,那么我可以比较相应的模拟输出和那个特定时刻的实际输出

最后我想迭代到模拟时间结束

请建议我如何解决这个问题


Tags: 文件数据函数示例用法列表time速率
1条回答
网友
1楼 · 发布于 2024-05-16 02:16:30

如果simact包含唯一值,下面是一种方法,使用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]

相关问题 更多 >