'n-th order non-central moment of distribution.
Parameters
n : int, n >= 1
Order of moment.
arg1, arg2, arg3,... : float
The shape parameter(s) for the distribution (see docstring of the
instance object for more information).
loc : array_like, optional
location parameter (default=0)
scale : array_like, optional
scale parameter (default=1)'

def moment(self, n, *args, **kwds):

    (args, loc, scale) = self._parse_args(*args, **kwds)
    if (not (self._argcheck(*args) and (scale > 0))):
        return nan
    if (floor(n) != n):
        raise ValueError('Moment    must    be    an    integer.')
    if (n < 0):
        raise ValueError('Moment    must    be    positive.')
    (mu, mu2, g1, g2) = (None, None, None, None)
    if ((n > 0) and (n < 5)):
        if self._stats_has_moments:
            mdict = {'moments': {1: 'm', 2: 'v', 3: 'vs', 4: 'vk'}[n]}
        else:
            mdict = {}
        (mu, mu2, g1, g2) = self._stats(*args, **mdict)
    val = _moment_from_stats(n, mu, mu2, g1, g2, self._munp, args)
    if (loc == 0):
        return ((scale ** n) * val)
    else:
        result = 0
        fac = (float(scale) / float(loc))
        for k in range(n):
            valk = _moment_from_stats(k, mu, mu2, g1, g2, self._munp, args)
            result += ((comb(n, k, exact=True) * (fac ** k)) * valk)
        result += ((fac ** n) * val)
        return (result * (loc ** n))
