[Python] Type check scipy.stats distributions with isinstance

Discussão em 'Python' iniciado por Stack, Maio 6, 2025.

  1. Stack

    Stack Membro Participativo

    I have several scipy.stats distributions in a list. I want to check if each distribution is e.g. uniform, normal or something else by isinstance. However, the type of all these distributions seem to be scipy.stats._distn_infrastructure.rv_continuous_frozen. How can I separate a uniform from a normal distribution?

    A minimum example is below.

    import scipy.stats
    dist_u = scipy.stats.uniform(loc = 0, scale = 2) #an example distribution
    # isinstance(dist_u, scipy.stats.uniform) #this does not work
    isinstance(dist_u, type(scipy.stats.uniform(0,1))) #This returns True
    isinstance(dist_u, type(scipy.stats.norm(0,1))) #This also returns True, I expected it to return False
    type(dist_u) # gives scipy.stats._distn_infrastructure.rv_continuous_frozen



    I used python 3.10 and scipy 1.9.0.

    Continue reading...

Compartilhe esta Página