當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python dask.array.piecewise用法及代碼示例

用法:

dask.array.piecewise(x, condlist, funclist, *args, **kw)

評估 piecewise-defined 函數。

此文檔字符串是從 numpy.piecewise 複製的。

可能存在與 Dask 版本的一些不一致之處。

給定一組條件和相應的函數,在輸入數據的條件為真時評估每個函數。

參數

xndarray 或標量

輸入域。

condlist布爾數組或布爾標量列表

每個布爾數組對應於 funclist 中的一個函數。隻要condlist[i] 為True,就使用funclist[i](x) 作為輸出值。

condlist 中的每個布爾數組選擇一塊 x ,因此應該與 x 具有相同的形狀。

condlist 的長度必須與 funclist 的長度相對應。如果給出了一個額外的函數,即如果 len(funclist) == len(condlist) + 1 ,則該額外函數是默認值,在所有條件為假的情況下使用。

funclist可調用對象、f(x,*args,**kw) 或標量列表

隻要對應條件為真,每個函數都會在 x 上進行評估。它應該將一維數組作為輸入,並給出一維數組或標量值作為輸出。如果提供了標量而不是可調用對象,則假定為常量函數 (lambda x: scalar)。

args元組,可選

piecewise 的任何其他參數都會在執行時傳遞給函數,即,如果調用 piecewise(..., ..., 1, 'a') ,則每個函數都稱為 f(x, 1, 'a')

kw字典,可選

調用 piecewise 時使用的關鍵字參數在執行時傳遞給函數,即,如果調用 piecewise(..., ..., alpha=1) ,則每個函數都稱為 f(x, alpha=1)

返回

outndarray

輸出的形狀和類型與 x 相同,可通過在 x 的適當部分調用 funclist 中的函數找到,如 condlist 中的布爾數組所定義。任何條件未涵蓋的部分的默認值為 0。

注意

這類似於選擇或選擇,除了函數是在滿足來自 condlist 的相應條件的 x 的元素上評估的。

結果是:

|--
      |funclist[0](x[condlist[0]])
out = |funclist[1](x[condlist[1]])
      |...
      |funclist[n2](x[condlist[n2]])
      |--

例子

定義 sigma 函數,對於 x < 0 為 -1,對於 x >= 0 為 +1。

>>> x = np.linspace(-2.5, 2.5, 6)  
>>> np.piecewise(x, [x < 0, x >= 0], [-1, 1])  
array([-1., -1., -1.,  1.,  1.,  1.])

定義絕對值,對於 x <0-x ,對於 x >= 0x

>>> np.piecewise(x, [x < 0, x >= 0], [lambda x: -x, lambda x: x])  
array([2.5,  1.5,  0.5,  0.5,  1.5,  2.5])

將相同的函數應用於標量值。

>>> y = -2  
>>> np.piecewise(y, [y < 0, y >= 0], [lambda x: -x, lambda x: x])  
array(2)

相關用法


注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask.array.piecewise。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。