用于有效地将条件应用于数组的 numpy 替代方法

Alternatives to numpy for efficiently applying a condition to an array

我正在做 Google Foobar 挑战之一,并提出了一个使用 numpy 数组的解决方案,该数组可以遍历 2000 个整数的最大列表并在大约 40,888 "lucky triples" 中找到1 秒,但我刚刚发现 Foobar shell 不支持 numpy!

有人可以指导我在哪里可以阅读如何在不使用 numpy 的情况下实现它吗?我认为这是我需要研究的矢量化,但到目前为止我读过的内容是空白的。

我不想放弃解决方案,但我希望在没有 numpy 的情况下重写的具体代码如下:

for potZ in l[l % potY == 0]:
    if potY != potZ:
        triples += 1

我在其他地方看到过我应该研究有向图的建议,但是鉴于我非常接近我认为(希望)可行的解决方案,我确实想看透它 - 我已经在Github上查看了Numpy的源代码,但还没有找到相关的地方。

因为时间需要优化,python内置函数filter可以帮助替换numpy函数。尝试这样的事情:

for potZ in filter(lambda x: x % potY == 0, l):
    pass

它比列表理解更快。