将函数映射到numpy数组,改变参数

Ago*_*gos 2 python arrays numpy map currying

首先,让我告诉你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)
    ...
Run Code Online (Sandbox Code Playgroud)

我在这里做的是尝试应用于func数组,每次更改func第二个参数的值.这是SLOOOOW(每次迭代创建一个新函数肯定没有帮助),我也觉得我错过了这样做的pythonic方式.有什么建议吗?

能给我2D阵列的解决方案是个好主意吗?我不知道,但也许是.

可能的问题的答案:

  • 是的,这是(使用广义定义),优化问题(do_something_else()隐藏此)
  • 不,scipy.optimize没有用,因为我正在处理布尔值,它似乎永远不会收敛.

Pau*_*aul 6

你试过numpy.vectorize吗?

...
    vfunc_curry = vectorize(functools.partial(func, y=n))
    result = vfunc_curry(a)
...
Run Code Online (Sandbox Code Playgroud)