用于有效地将条件应用于数组的 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
它比列表理解更快。
我正在做 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
它比列表理解更快。