首先,让我告诉你codez:
a = array([...])
for n in range(10000):
func_curry = functools.partial(func, y=n)
result = array(map(func_curry, a))
do_something_else(result)
...
我在这里做的是尝试将func
应用于数组,每次更改func
的第二个参数的值时都会更改。这是SLOOOOW(每次迭代创建一个新函数肯定没有帮助),我也觉得我错过了这样做的pythonic方式。有什么建议吗?
能给我2D阵列的解决方案是个好主意吗?我不知道,但也许是。
可能的问题答案:
do_something_else()
隐藏了这个)答案 0 :(得分:6)
你试过numpy.vectorize
吗?
...
vfunc_curry = vectorize(functools.partial(func, y=n))
result = vfunc_curry(a)
...
答案 1 :(得分:0)
如果a
的大小很大,那么瓶颈不应该是函数的创建,而是数组的重复。
答案 2 :(得分:0)
你可以改写这个功能吗?如果可能,您应该编写函数来获取两个numpy数组a
和numpy.arange(n)
。您可能需要重新整形以使阵列排队进行广播。