It is straightforward to compute the partial derivatives of a function at a point with respect to the first argument using the SciPy function scipy.misc.derivative
. Here is an example:
def foo(x, y):
return(x**2 + y**3)
from scipy.misc import derivative
derivative(foo, 1, dx = 1e-6, args = (3, ))
But how would I go about taking the derivative of the function foo
with respect to the second argument? One way I can think of is to generate a lambda function that rejigs the arguments around, but that can quickly get cumbersome.
Also, is there a way to generate an array of partial derivatives with respect to some or all of the arguments of a function?