小编Swa*_*ani的帖子

如何利用两个大型列表之间的索引关系更快地获取列表?

问题给出了以下两个列表。

import numpy as np
import random as rnd

num = 100000

a = list(range(num))
b = [rnd.randint(0, num) for r in range(num)]
Run Code Online (Sandbox Code Playgroud)

在两个尺寸巨大的列表之间(假设引用列表为),使用 list( ) 理解方法创建a一个指示相同元素位于相对 array( ) 中位置的列表。batob

atob = [np.abs(np.subtract(b, i)).argmin() for i in a]
print(f"index a to b: {atob}")
Run Code Online (Sandbox Code Playgroud)

当列表较小时,不需要很长时间。然而,我意识到获取列表的过程atob相当耗时。

有没有办法更快地获取列表atob?还是目前没有办法?


(回答后编辑。此修订的目的是为了将来的读者。)非常感谢您的回复!根据答案进行代码分析。

  • 检查输出

结果的比较是用 进行的num = 20

import numpy as np
import random as rnd
import time

# set lists
num = 20
a = list(range(num)) …
Run Code Online (Sandbox Code Playgroud)

python performance numpy list python-3.x

5
推荐指数
1
解决办法
134
查看次数

标签 统计

list ×1

numpy ×1

performance ×1

python ×1

python-3.x ×1