当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python mxnet.ndarray.diag用法及代码示例


用法:

mxnet.ndarray.diag(data=None, k=_Null, axis1=_Null, axis2=_Null, out=None, name=None, **kwargs)

参数

  • data(NDArray) - 输入 ndarray
  • k(int, optional, default='0') - 有问题的对角线。默认值为 0。对主对角线上方的对角线使用 k>0,对主对角线下方的对角线使用 k<0。如果输入具有形状 (S0 S1) k 必须在 -S0 和 S1 之间
  • axis1(int, optional, default='0') - 感兴趣的子阵列的第一个轴。当输入是一维数组时忽略。
  • axis2(int, optional, default='1') - 感兴趣的子阵列的第二个轴。当输入是一维数组时忽略。
  • out(NDArray, optional) - 输出 NDArray 来保存结果。

返回

out- 此函数的输出。

返回类型

NDArray 或 NDArray 列表

提取对角线或构造对角行数组。

diag 的行为取决于输入数组的维度:

  • 一维数组:构造一个以输入为对角线的二维数组,所有其他元素为零。

  • N-D 数组:提取具有由 axis1axis2 指定的轴的子数组的对角线。输出形状将通过从输入形状中删除编号为 axis1axis2 的轴并在结果中附加一个具有相关对角线大小的新轴来决定。

    例如,当输入形状为 (2, 3, 4, 5)axis1axis2 分别为 0 和 2 且 k 为 0 时,生成的形状将为 (3, 5, 2)

例子:

x = [[1, 2, 3],
     [4, 5, 6]]

diag(x) = [1, 5]

diag(x, k=1) = [2, 6]

diag(x, k=-1) = [4]

x = [1, 2, 3]

diag(x) = [[1, 0, 0],
           [0, 2, 0],
           [0, 0, 3]]

diag(x, k=1) = [[0, 1, 0],
                [0, 0, 2],
                [0, 0, 0]]

diag(x, k=-1) = [[0, 0, 0],
                 [1, 0, 0],
                 [0, 2, 0]]

x = [[[1, 2],
      [3, 4]],

     [[5, 6],
      [7, 8]]]

diag(x) = [[1, 7],
           [2, 8]]

diag(x, k=1) = [[3],
                [4]]

diag(x, axis1=-2, axis2=-1) = [[1, 4],
                               [5, 8]]

相关用法


注:本文由纯净天空筛选整理自apache.org大神的英文原创作品 mxnet.ndarray.diag。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。