用法:
dask.array.apply_along_axis(func1d, axis, arr, *args, dtype=None, shape=None, **kwargs)
沿給定軸將函數應用於一維切片。
此文檔字符串是從 numpy.apply_along_axis 複製的。
可能存在與 Dask 版本的一些不一致之處。
這是通過
dask.array.map_blocks()
實現的numpy.apply_along_axis()
的阻塞變體- func1d:函數 (M,) -> (Nj…)
這個函數應該接受一維數組。它應用於沿指定軸的
arr
的一維切片。- axis:整數
arr
沿其切片的軸。- arr:ndarray (Ni…, M, Nk…)
輸入數組。
- args:任何
func1d
的附加參數。- kwargs:任何
func1d
的附加命名參數。
- out:ndarray (Ni…, Nj…, Nk…)
輸出數組。
out
的形狀與arr
的形狀相同,除了沿axis
維度。該軸被移除,並替換為與func1d
的返回值形狀相等的新尺寸。因此,如果func1d
返回一個標量out
將比arr
少一個維度。
參數:
返回:
注意:
如果沒有提供
dtype
或shape
中的任何一個,Dask 會嘗試通過在虛擬數組上調用func1d
來確定它們。這可能會為dtype
或shape
生成不正確的值,因此我們建議提供它們。執行
func1d(a, *args, **kwargs)
其中func1d
對一維數組進行操作,而a
是arr
沿axis
的一維切片。這等效於(但比)以下使用
ndindex
和s_
,將ii
,jj
和kk
設置為索引元組:Ni, Nk = a.shape[:axis], a.shape[axis+1:] for ii in ndindex(Ni): for kk in ndindex(Nk): f = func1d(arr[ii + s_[:,] + kk]) Nj = f.shape for jj in ndindex(Nj): out[ii + jj + kk] = f[jj]
等效地,消除內部循環,這可以表示為:
Ni, Nk = a.shape[:axis], a.shape[axis+1:] for ii in ndindex(Ni): for kk in ndindex(Nk): out[ii + s_[...,] + kk] = func1d(arr[ii + s_[:,] + kk])
例子:
>>> def my_func(a): ... """Average first and last element of a 1-D array""" ... return (a[0] + a[-1]) * 0.5 >>> b = np.array([[1,2,3], [4,5,6], [7,8,9]]) >>> np.apply_along_axis(my_func, 0, b) array([4., 5., 6.]) >>> np.apply_along_axis(my_func, 1, b) array([2., 5., 8.])
對於返回一維數組的函數,
outarr
中的維數與arr
相同。>>> b = np.array([[8,1,7], [4,3,9], [5,2,6]]) >>> np.apply_along_axis(sorted, 1, b) array([[1, 7, 8], [3, 4, 9], [2, 5, 6]])
對於返回更高維數組的函數,將插入這些維度來代替
axis
維度。>>> b = np.array([[1,2,3], [4,5,6], [7,8,9]]) >>> np.apply_along_axis(np.diag, -1, b) array([[[1, 0, 0], [0, 2, 0], [0, 0, 3]], [[4, 0, 0], [0, 5, 0], [0, 0, 6]], [[7, 0, 0], [0, 8, 0], [0, 0, 9]]])
相關用法
- Python dask.array.apply_over_axes用法及代碼示例
- Python dask.array.append用法及代碼示例
- Python dask.array.around用法及代碼示例
- Python dask.array.arctan用法及代碼示例
- Python dask.array.arcsin用法及代碼示例
- Python dask.array.asanyarray用法及代碼示例
- Python dask.array.all用法及代碼示例
- Python dask.array.arccos用法及代碼示例
- Python dask.array.array用法及代碼示例
- Python dask.array.atleast_3d用法及代碼示例
- Python dask.array.allclose用法及代碼示例
- Python dask.array.arctanh用法及代碼示例
- Python dask.array.average用法及代碼示例
- Python dask.array.atleast_1d用法及代碼示例
- Python dask.array.asarray用法及代碼示例
- Python dask.array.add用法及代碼示例
- Python dask.array.argtopk用法及代碼示例
- Python dask.array.atleast_2d用法及代碼示例
- Python dask.array.argmin用法及代碼示例
- Python dask.array.arccosh用法及代碼示例
注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask.array.apply_along_axis。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。