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
超出索引范围。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> 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]]]