O.rka O.rka - 3 months ago 15
Python Question

Get distribution name from scipy.stats.distribution object? (SciPy | Python 3)

I'm trying out a bunch of different fits for distributions.

Is there any way to get the name of the distribution back from the distribution object?

I found a way but it doesn't seem very efficient.

distribution = "gamma"
distr = getattr(stats, distribution)
print(distr)
# <scipy.stats._continuous_distns.gamma_gen object at 0x11688f518>
str(distr).split(".")[3].split("_")[0]
# 'gamma'

Answer

Use the name attribute:

>>> from scipy import stats
>>> distribution = "gamma"
>>> distr = getattr(stats, distribution)
>>> distr.name
'gamma'