真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python定義分段函數(shù)的方法-創(chuàng)新互聯(lián)

這篇文章主要介紹Python定義分段函數(shù)的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

10年積累的成都網(wǎng)站設(shè)計、網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有雙城免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

Python如何定義分段函數(shù)呢?下面是一個分段函數(shù):

Python定義分段函數(shù)的方法

一開始寫了個簡單版本log_norm0,只能逐元素一個一個得進行。不用想,對元素個數(shù)多的向量,肯定慢成烏龜。

后來想到使用一個指示函數(shù),來區(qū)分分段的兩種情況,就得到log_norm1。不過這種情況比較特殊,不是每次都能成功構(gòu)造的。

最后,查到numpy中有函數(shù)piecewise(x, condlist, funclist, *args, **kw),它是專門用來構(gòu)造分段函數(shù),x是輸入,condlist表示分段的條件,funclist就表示對應(yīng)分段的處理函數(shù)。這就得到了log_norm2。

# elementwise
def log_norm0(x):
    if x >= 0:
        return np.log(x + 1)
    else:
        return - np.log(- x + 1)
# indicator
def log_norm1(x):
    # ind = np.where(x > 0, 1, 0)
    ind = (x > 0)
    return np.log(x * ind + 1) - np.log(- x * (1.0 - ind) + 1)
# numpy.piecewise()
def log_norm2(x):
    return np.piecewise(x, [x >= 0, x < 0], [lambda x: np.log(1 + x), lambda x: - np.log(1 - x)])

最后,觀察一個各個函數(shù)的運行時間。

tic = time.time()
for i in range(x.size):
    y[i] = log_norm0(x[i])
toc = time.time()
print('log0: ', toc - tic)
tic = time.time()
y = log_norm1(x)
toc = time.time()
print('log1: ', toc - tic)
tic = time.time()
z = log_norm2(x)
toc = time.time()
print('log2: ', toc - tic)

觀察結(jié)果,還是使用指示函數(shù)的方法最快,不過跟piecewise差別不大。

log0:  33.59282732009888
log1:  0.4863457679748535
log2:  0.5942573547363281

以上是Python定義分段函數(shù)的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


網(wǎng)頁標題:Python定義分段函數(shù)的方法-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://weahome.cn/article/ecjhg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部