maxframe.tensor.hsplit#

maxframe.tensor.hsplit(a, indices_or_sections)[源代码]#

将一个张量水平(按列)分割成多个子张量。

请参阅 split 文档。hsplit 等价于 axis=1split,张量总是沿第二个轴进行分割,无论张量的维度如何。

参见

split

将一个数组分割成多个大小相等的子数组。

示例

>>> import maxframe.tensor as mt
>>> x = mt.arange(16.0).reshape(4, 4)
>>> x.execute()
array([[  0.,   1.,   2.,   3.],
       [  4.,   5.,   6.,   7.],
       [  8.,   9.,  10.,  11.],
       [ 12.,  13.,  14.,  15.]])
>>> mt.hsplit(x, 2).execute()
[array([[  0.,   1.],
       [  4.,   5.],
       [  8.,   9.],
       [ 12.,  13.]]),
 array([[  2.,   3.],
       [  6.,   7.],
       [ 10.,  11.],
       [ 14.,  15.]])]
>>> mt.hsplit(x, mt.array([3, 6])).execute()
[array([[  0.,   1.,   2.],
       [  4.,   5.,   6.],
       [  8.,   9.,  10.],
       [ 12.,  13.,  14.]]),
 array([[  3.],
       [  7.],
       [ 11.],
       [ 15.]]),
 array([], dtype=float64)]

对于更高维度的数组,分割仍然沿着第二个轴进行。

>>> x = mt.arange(8.0).reshape(2, 2, 2)
>>> x.execute()
array([[[ 0.,  1.],
        [ 2.,  3.]],
       [[ 4.,  5.],
        [ 6.,  7.]]])
>>> mt.hsplit(x, 2)
[array([[[ 0.,  1.]],
       [[ 4.,  5.]]]),
 array([[[ 2.,  3.]],
       [[ 6.,  7.]]])]