'Differential entropy of the RV.
Parameters
arg1, arg2, arg3,... : array_like
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  (continuous distributions only).
Scale parameter (default=1).
Notes
Entropy is defined base `e`:
>>> drv = rv_discrete(values=((0, 1), (0.5, 0.5)))
>>> np.allclose(drv.entropy(), np.log(2.0))
True'

def entropy(self, *args, **kwds):

    (args, loc, scale) = self._parse_args(*args, **kwds)
    args = tuple(map(asarray, args))
    cond0 = ((self._argcheck(*args) & (scale > 0)) & (loc == loc))
    output = zeros(shape(cond0), 'd')
    place(output, (1 - cond0), self.badvalue)
    goodargs = argsreduce(cond0, *args)
    place(output, cond0, (self.vecentropy(*goodargs) + log(scale)))
    return output
