### Navigation

- index
- modules |
- modules |
- next |
- previous |
- SciPy v0.12 Reference Guide (DRAFT) »
- Miscellaneous routines (`scipy.misc`) »

# scipy.misc.logsumexp

`scipy.misc.``logsumexp`(a, axis=None, b=None)

  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.
  Returns : | 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.

  See also

  `numpy.logaddexp`, `numpy.logaddexp2`

  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

### Navigation

- index
- modules |
- modules |
- next |
- previous |
- SciPy v0.12 Reference Guide (DRAFT) »
- Miscellaneous routines (`scipy.misc`) »