# scipy.misc.logsumexp¶

scipy.misc.logsumexp(a, axis=None, b=None)[source]

Compute the log of the sum of exponentials of input elements.

Parameters : a : array_like Input array. axis : int, optional Axis over which the sum is taken. By default axis is None, and all elements are summed. New in version 0.11.0. b : array-like, optional Scaling factor for exp(a) must be of the same shape as a or broadcastable to a. New in version 0.12.0. res : ndarray The result, np.log(np.sum(np.exp(a))) calculated in a numerically more stable way. If b is given then np.log(np.sum(b*np.exp(a))) is returned.

Notes

Numpy has a logaddexp function which is very similar to logsumexp, but only handles two arguments. logaddexp.reduce is similar to this function, but may be less stable.

Examples

```>>> from scipy.misc import logsumexp
>>> a = np.arange(10)
>>> np.log(np.sum(np.exp(a)))
9.4586297444267107
>>> logsumexp(a)
9.4586297444267107
```

With weights

```>>> a = np.arange(10)
>>> b = np.arange(10, 0, -1)
>>> logsumexp(a, b=b)
9.9170178533034665
>>> np.log(np.sum(b*np.exp(a)))
9.9170178533034647
```

scipy.misc.lena