如何在python中对嵌套的for循环进行矢量化

2024-04-19 00:57:24 发布

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

我主要关心的是效率。我有一个很长的ID列表,还有一个更短的ID列表。我想存储第二个列表中与第一个列表中的每个ID相对应的ID的位置(每个ID在每个列表中只出现一次)。我已经编写了一个嵌套的for循环来实现这一点,但是由于第一个列表包含超过1000个元素,而第二个列表包含超过80k个元素,因此下面的代码花费了很长时间(但是可以工作)。在

IDD1 = [0] * leng
IDD2 = [0] * leng
## Match IDs to position in table
for i in range(leng):
    for j in range(len(halo_id)):
        if ID1[i] == halo_id[j]:
            IDD1[i] = j
        if ID2[i] == halo_id[j]:
            IDD2[i] = j

如果有关联,那么id最初来自halotools halo目录表。在

编辑:

数据实际上只是两种情况下的整数列表。我想要的结果是一个整数(索引)列表。ID1和ID2本质上是一样的,我只需要用同样的方法对它们进行操作。它们是我之前的整数列表。光环是一样的,但长得多。在


Tags: inid元素列表forifrange整数