Skip to main content
`Ctrl`+`K`
scipy.stats.Normal.

# mode

Normal.mode(*, method=None)

  Mode (most likely value)

  Informally, the mode is a value that a random variable has the highest probability (density) of assuming. That is, the mode is the element of the support \(\chi\) that maximizes the probability density (or mass, for discrete random variables) function \(f(x)\):

  \[\text{mode} = \arg\max_{x \in \chi} f(x)\]
  Parameters:
    method{None, ‘formula’, ‘optimization’}

      The strategy used to evaluate the mode. By default (`None`), the infrastructure chooses between the following options, listed in order of precedence.

      - `'formula'`: use a formula for the median

      - `'optimization'`: numerically maximize the PDF/PMF

      Not all method options are available for all distributions. If the selected method is not available, a `NotImplementedError` will be raised.

  Returns:
    out array

      The mode

  See also

  `mean`
  `median`
  `pdf`

  Notes

  For some distributions

  1. the mode is not unique (e.g. the uniform distribution);

  2. the PDF has one or more singularities, and it is debatable whether a singularity is considered to be in the domain and called the mode (e.g. the gamma distribution with shape parameter less than 1); and/or

  3. the probability density function may have one or more local maxima that are not a global maximum (e.g. mixture distributions).

  In such cases, `mode` will

  1. return a single value,

  2. consider the mode to occur at a singularity, and/or

  3. return a local maximum which may or may not be a global maximum.

  If a formula for the mode is not specifically implemented for the chosen distribution, SciPy will attempt to compute the mode numerically, which may not meet the user’s preferred definition of a mode. In such cases, the user is encouraged to subclass the distribution and override `mode`.

  References

  [1]

  Mode (statistics), Wikipedia, https://en.wikipedia.org/wiki/Mode_(statistics)

  Examples

  Instantiate a distribution with the desired parameters:

      >>> from scipy import stats
      >>> X = stats.Normal(mu=1., sigma=2.)

  Evaluate the mode:

      >>> X.mode()
      1.0

  If the mode is not uniquely defined, `mode` nonetheless returns a single value.

      >>> X = stats.Uniform(a=0., b=1.)
      >>> X.mode()
      0.5

  If this choice does not satisfy your requirements, subclass the distribution and override `mode`:

      >>> class BetterUniform(stats.Uniform):
      ...     def mode(self):
      ...         return self.b
      >>> X = BetterUniform(a=0., b=1.)
      >>> X.mode()
      1.0