# How do I compute derivative using Numpy?

###### Posted By: Anonymous

How do I calculate the derivative of a function, for example

y = x

^{2}+1

using `numpy`

?

Let’s say, I want the value of derivative at x = 5…

## Solution

You have four options

- Finite Differences
- Automatic Derivatives
- Symbolic Differentiation
- Compute derivatives by hand.

Finite differences require no external tools but are prone to numerical error and, if you’re in a multivariate situation, can take a while.

Symbolic differentiation is ideal if your problem is simple enough. Symbolic methods are getting quite robust these days. SymPy is an excellent project for this that integrates well with NumPy. Look at the autowrap or lambdify functions or check out Jensen’s blogpost about a similar question.

Automatic derivatives are very cool, aren’t prone to numeric errors, but do require some additional libraries (google for this, there are a few good options). This is the most robust but also the most sophisticated/difficult to set up choice. If you’re fine restricting yourself to `numpy`

syntax then Theano might be a good choice.

Here is an example using SymPy

```
In [1]: from sympy import *
In [2]: import numpy as np
In [3]: x = Symbol('x')
In [4]: y = x**2 + 1
In [5]: yprime = y.diff(x)
In [6]: yprime
Out[6]: 2⋅x
In [7]: f = lambdify(x, yprime, 'numpy')
In [8]: f(np.ones(5))
Out[8]: [ 2. 2. 2. 2. 2.]
```

###### Answered By: Anonymous

Disclaimer: This content is shared under creative common license cc-by-sa 3.0. It is generated from StackExchange Website Network.