【发布时间】:2022-01-23 08:19:32
【问题描述】:
我正在解决一个问题,我需要将 1 个特定数组与数十万其他数组进行比较,并返回一个结果列表,显示它们彼此之间的相似程度,我读到 numpy 可能是最好的库关于使用数组(如果有更好的请告诉我:) 所以我写了这个,但它仍然很慢。我不是最擅长编程的,因此我们将不胜感激任何有助于改进这一点的帮助!
import numpy as np
list_of_arrays = [np.random.randint(0, 2, (30, 30)) for array in range(100000)]
base_array = np.random.randint(0, 2, (30, 30))
results = []
for array in list_of_arrays:
results.append(np.sum(np.equal(base_array, array)))
【问题讨论】:
-
比较部分非常快,需要几秒钟,因为生成所有这些随机数需要时间
-
@Giedrius 请在下面查看我的答案。我已经验证它会产生与您的代码相同的结果,并且它可能会更快一些,因为它使用纯 numpy(无循环)。如果它对你来说不够快,你应该放弃,因为它不能变得更快;)