mindspore.numpy.diagonal

mindspore.numpy.diagonal(a, offset=0, axis1=0, axis2=1)[源代码]

返回数组指定的对角线。 如果 a 是二维,则返回具有给定 offseta 的对角线,形如 a[i, i+offset] 的元素的集合。如果 a 具有两个以上的维度,则使用 axis1axis2 指定的轴来确定返回对角线的二维子数组。可以通过移除 axis1axis2 并在右边附加等于结果对角线大小的索引来确定结果数组的shape。

参数:
  • a (Tensor) - 输入数据,用于从中获取对角线的数组。

  • offset (int, 可选) - 对角线与主对角线的偏移量。可以是正的或负的。默认主对角线。

  • axis1 (int, 可选) - 二维子数组的第一个轴。默认为第一个轴(0)。

  • axis2 (int, 可选) - 二维子数组的第二个轴。默认为第二个轴。

返回:

Tensor,如果传递的数组 a 是二维数组,则返回包含对角线元素的一维数组。对于三维数组或更多维数组,将删除 axis1axis2 指定的轴,并将两个参数中较小的一个添加到最后一个轴。

异常:
  • 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.]]