mindspore.numpy.diagonal
- mindspore.numpy.diagonal(a, offset=0, axis1=0, axis2=1)[源代码]
返回数组指定的对角线。 如果
a
是二维,则返回具有给定offset
的a
的对角线,形如a[i, i+offset]
的元素的集合。如果a
具有两个以上的维度,则使用axis1
和axis2
指定的轴来确定返回对角线的二维子数组。可以通过移除axis1
和axis2
并在右边附加等于结果对角线大小的索引来确定结果数组的shape。- 参数:
a (Tensor) - 输入数据,用于从中获取对角线的数组。
offset (int, 可选) - 对角线与主对角线的偏移量。可以是正的或负的。默认主对角线。
axis1 (int, 可选) - 二维子数组的第一个轴。默认为第一个轴(0)。
axis2 (int, 可选) - 二维子数组的第二个轴。默认为第二个轴。
- 返回:
Tensor,如果传递的数组
a
是二维数组,则返回包含对角线元素的一维数组。对于三维数组或更多维数组,将删除axis1
和axis2
指定的轴,并将两个参数中较小的一个添加到最后一个轴。- 异常:
ValueError - 如果输入的数据少于两个维度。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import mindspore.numpy as np >>> a = np.arange(4).reshape(2,2).astype(np.float32) >>> print(a) [[0. 1.] [2. 3.]] >>> output = np.diagonal(a) >>> print(output) [0. 3.] >>> output = np.diagonal(a, 1) >>> print(output) [1.] >>> a = np.arange(8).reshape(2, 2, 2).astype(np.float32) >>> print(a) [[[0. 1.] [2. 3.]] [[4. 5.] [6. 7.]]] >>> output = np.diagonal(a, 0, 0, 1) >>> print(output) [[0. 6.] [1. 7.]]