mars.tensor.split¶
- mars.tensor.split(ary, indices_or_sections, axis=0)[源代码]¶
Split a tensor into multiple sub-tensors.
- 参数
ary (Tensor) – Tensor to be divided into sub-tensors.
indices_or_sections (int or 1-D tensor) –
If indices_or_sections is an integer, N, the array will be divided into N equal tensors along axis. If such a split is not possible, an error is raised.
If indices_or_sections is a 1-D tensor of sorted integers, the entries indicate where along axis the array is split. For example,
[2, 3]
would, foraxis=0
, result inary[:2]
ary[2:3]
ary[3:]
If an index exceeds the dimension of the tensor along axis, an empty sub-tensor is returned correspondingly.
axis (int, optional) – The axis along which to split, default is 0.
- 返回
sub-tensors – A list of sub-tensors.
- 返回类型
list of Tensors
- 引发
ValueError – If indices_or_sections is given as an integer, but a split does not result in equal division.
参见
array_split
Split a tensor into multiple sub-tensors of equal or near-equal size. Does not raise an exception if an equal division cannot be made.
hsplit
Split into multiple sub-arrays horizontally (column-wise).
vsplit
Split tensor into multiple sub-tensors vertically (row wise).
dsplit
Split tensor into multiple sub-tensors along the 3rd axis (depth).
concatenate
Join a sequence of tensors along an existing axis.
stack
Join a sequence of tensors along a new axis.
hstack
Stack tensors in sequence horizontally (column wise).
vstack
Stack tensors in sequence vertically (row wise).
dstack
Stack tensors in sequence depth wise (along third dimension).
实际案例
>>> import mars.tensor as mt
>>> x = mt.arange(9.0) >>> mt.split(x, 3).execute() [array([ 0., 1., 2.]), array([ 3., 4., 5.]), array([ 6., 7., 8.])]
>>> x = mt.arange(8.0) >>> mt.split(x, [3, 5, 6, 10]).execute() [array([ 0., 1., 2.]), array([ 3., 4.]), array([ 5.]), array([ 6., 7.]), array([], dtype=float64)]