【发布时间】:2018-05-29 21:45:45
【问题描述】:
给出的是 Python 中的函数句柄列表,比如:
f = [f1, f2, f3, f4]
以及相应的参数列表:
a = [a1, a2, a3, a4]
问题 我想快速计算:[f1(a1), f2(a2), f3(a3), f4(a4)]。我尝试了列表理解,但对于我的应用程序来说太慢了。有没有更自然的方式/numpy-fast 的方式来做到这一点?我正在考虑某种矢量化。
【问题讨论】:
-
你试过了吗:
[func(param) for func, param in zip(f, a)]?我不明白numpy在这种情况下如何优化zip。 -
在任何人评估它是否可以矢量化之前,您需要展示该函数的作用。请给出一个示例输入和输出,以及函数
-
@roganjosh 感谢您的评论,是的,我可能需要更深入一层,好点,我想我大概是在考虑将 f 和 a 堆叠在二维数组中并将列应用到某种意义上的“彼此”。
-
拥有数组中每个项目的函数列表可能意味着您已经过了矢量化点。
numpy库中存在一些误导性名称,这些名称无非是 pythonfor循环,所以我们需要看看这些函数做了什么(假设它们基本相同)
标签: python performance numpy