mindspore.numpy.apply_along_axis
- mindspore.numpy.apply_along_axis(func1d, axis, arr, *args, **kwargs)[源代码]
在指定轴的一维切片上调用给定函数。执行
func1d(a, *args, **kwargs),其中func1d在一维数组上运算,a是arr沿着指定axis的一维切片。- 参数:
func1d (function) - Maps
(M,) -> (Nj…)。该函数仅接受输入为一维数组,应用于沿指定轴的arr的一维切片。axis (int) - 指定
arr所需切片的轴。arr (Tensor) - 输入的数组,且输入包含数组shape
(Ni…, M, Nk…)。args (any) -
func1d的附加参数。kwargs (any) -
func1d的附加命名参数。
- 返回:
Tensor,shape为
(Ni…, Nj…, Nk…),除了axis那一维 ,它的shape与arr的shape相同。axis那一维被替换为func1d的返回值shape。因此,如果func1d返回标量,则输出的维度将比arr少一个。- 异常:
ValueError - 如果
axis超出索引范围。
- 支持平台:
AscendGPUCPU
样例:
>>> import mindspore.numpy as np >>> b = np.array([[1,2,3], [4,5,6], [7,8,9]]) >>> print(np.apply_along_axis(np.diag, -1, b)) [[[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]]]