亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何檢查 scipy 分布是否是離散的?

如何檢查 scipy 分布是否是離散的?

元芳怎么了 2022-11-01 17:17:55
我想檢查scipy分布是離散的還是連續的。無論對象是來自命名分發的凍結分發對象,還是自定義rv_discrete或rv_continuous分發的實例,測試都應該有效。我的第一個想法是檢查變量的類型,但這似乎與連續與離散并不完全對應。例如,這里有四個分布:from scipy.stats import *import numpy as npdist_norm = norm(10, 2)dist_poisson = poisson(10)class continuous_gen(rv_continuous):    def _pdf(self, x, *args):        if x >= 0 and x <= 1:            return 1        else:            return 0dist_contin = continuous_gen()xk = np.arange(7)pk = (0.1, 0.2, 0.3, 0.1, 0.1, 0.0, 0.2)dist_discrete = rv_discrete(values=(xk, pk))以下是它們的類型:type(dist_norm)Out[59]: scipy.stats._distn_infrastructure.rv_frozentype(dist_poisson)Out[60]: scipy.stats._distn_infrastructure.rv_frozentype(dist_contin)Out[61]: __main__.continuous_gentype(dist_discrete)Out[62]: scipy.stats._distn_infrastructure.rv_sample現在我已經is_discrete()通過嘗試訪問該pmf()方法(只有離散分布具有)實現了一個功能,但我不確定這是否是最干凈或最可靠的方法。有沒有更好的辦法?def is_discrete(dist):    try:        _ = dist.pmf(0)        return True    except:        return False
查看完整描述

1 回答

?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

您可以使用isinstance內置函數來定義自定義檢查:

from scipy.stats import poisson, norm, rv_discrete, rv_continuous


def is_discrete(dist):


    if hasattr(dist, 'dist'):

        return isinstance(dist.dist, rv_discrete)

    else: return isinstance(dist, rv_discrete)


def is_continuous(dist):


    if hasattr(dist, 'dist'):

        return isinstance(dist.dist, rv_continuous)

    else: return isinstance(dist, rv_continuous)


這將導致:


class continuous_gen(rv_continuous):

    def _pdf(self, x, *args):

        if x >= 0 and x <= 1:

            return 1

        else:

            return 0

dist_contin = continuous_gen()

dist_poisson = poisson(10)


is_discrete(dist_contin)

#False

is_continuous(dist_contin)

#True

is_discrete(dist_poisson)

#True

is_continuous(dist_poisson)

#False


查看完整回答
反對 回復 2022-11-01
  • 1 回答
  • 0 關注
  • 159 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號