maxframe.tensor.transpose#

maxframe.tensor.transpose(a, axes=None)[源代码]#

返回一个轴被转置的数组。

对于一维数组,这将返回原始数组的一个未更改视图,因为转置向量就是相同的向量。要将一维数组转换为二维列向量,必须添加一个额外的维度,例如 mt.atleast_2d(a).T 可以实现这一点,a[:, mt.newaxis] 也可以。对于二维数组,这是标准的矩阵转置。对于 n 维数组,如果指定了轴,则它们的顺序表示轴如何进行置换(参见示例)。如果没有提供轴,则 transpose(a).shape == a.shape[::-1]

参数:
  • a (array_like) -- 输入数组。

  • axes (tuple or list of ints, optional) -- 如果指定,则它必须是一个包含 [0,1,...,N-1] 排列的元组或列表,其中 N 是 a 的轴数。返回数组的第 i 个轴对应于输入中编号为 axes[i] 的轴。如果未指定,默认为 range(a.ndim)[::-1],即轴顺序反转。

返回:

p -- 轴被置换后的 a。只要可能,返回的是视图。

返回类型:

ndarray

备注

在使用 axes 关键字参数时,可以使用 transpose(a, argsort(axes)) 来逆转张量的转置。

示例

>>> import maxframe.tensor as mt
>>> x = mt.arange(4).reshape((2,2))
>>> x.execute()
array([[0, 1],
       [2, 3]])
>>> mt.transpose(x).execute()
array([[0, 2],
       [1, 3]])
>>> x = mt.ones((1, 2, 3))
>>> mt.transpose(x, (1, 0, 2)).shape
(2, 1, 3)