maxframe.tensor.compress#

maxframe.tensor.compress(condition, a, axis=None, out=None)[源代码]#

返回沿给定轴的张量的选定切片。

当沿着给定轴工作时,对于 condition 为 True 的每个索引,将返回沿该轴的一个切片到 output 中。当处理一维数组时,compress 等价于 extract

参数:
  • condition (1-D tensor of bools) -- 选择要返回哪些条目的张量。如果 condition 的长度小于 a 沿给定轴的大小,则输出会被截断为条件张量的长度。

  • a (array_like) -- 要从中提取部分的张量。

  • axis (int, optional) -- 沿其取切片的轴。如果为 None(默认值),则在展平后的张量上操作。

  • out (Tensor, optional) -- 输出张量。其类型会被保留,并且必须具有能够容纳输出结果的正确形状。

返回:

compressed_array -- 一个 a 的副本,其中移除了 condition 为假值的轴上的切片。

返回类型:

Tensor

参见

take, choose, diag, diagonal, select

Tensor.compress

ndarray 中的等效方法

mt.extract

处理一维数组时的等效方法

示例

>>> import maxframe.tensor as mt
>>> a = mt.array([[1, 2], [3, 4], [5, 6]])
>>> a.execute()
array([[1, 2],
       [3, 4],
       [5, 6]])
>>> mt.compress([0, 1], a, axis=0).execute()
array([[3, 4]])
>>> mt.compress([False, True, True], a, axis=0).execute()
array([[3, 4],
       [5, 6]])
>>> mt.compress([False, True], a, axis=1).execute()
array([[2],
       [4],
       [6]])

对展平张量进行操作不会返回沿轴的切片,而是选择元素。

>>> mt.compress([False, True], a).execute()
array([2])