首先,让我向您展示代码:
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
第二个参数的值。这太慢了(每次迭代创建一个新函数肯定没有帮助),而且我也觉得我错过了 pythonic 的做法。有什么建议吗?
为我提供二维数组的解决方案是个好主意吗?我不知道,但也许是这样。
可能问题的答案:
- 是的,这是(使用广义定义)优化问题(
do_something_else()
隐藏了这一点) - 不,scipy.optimize 不起作用,因为我正在处理 bool 值,而且它似乎永远不会收敛。
最佳答案
你尝试过numpy.vectorize
吗?
...
vfunc_curry = vectorize(functools.partial(func, y=n))
result = vfunc_curry(a)
...
关于python - 将函数映射到 numpy 数组,改变参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3977581/