flopscope.numpy.split
fnp.split(ary, indices_or_sections, axis=0)[flopscope source][numpy source]
Split an array into multiple sub-arrays as views into `ary`.
Adapted from NumPy docs np.split
Split array into sub-arrays. Cost: numel(output).
Split an array into multiple sub-arrays as views into ary.
Parameters
- ary:ndarray
Array to be divided into sub-arrays.
- indices_or_sections:int or 1-D array
If
indices_or_sectionsis an integer, N, the array will be divided into N equal arrays alongaxis. If such a split is not possible, an error is raised.If
indices_or_sectionsis a 1-D array of sorted integers, the entries indicate where alongaxisthe 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 array along
axis, an empty sub-array is returned correspondingly.- axis:int, optional
The axis along which to split, default is 0.
Returns
- sub-arrays:list of ndarrays
A list of sub-arrays as views into
ary.
Raises
- :ValueError
If
indices_or_sectionsis given as an integer, but a split does not result in equal division.
See also
- we.flops.array_split Split an array into multiple sub-arrays of equal or near-equal size. Does not raise an exception if an equal division cannot be made.
- we.flops.hsplit Split array into multiple sub-arrays horizontally (column-wise).
- we.flops.vsplit Split array into multiple sub-arrays vertically (row wise).
- we.flops.dsplit Split array into multiple sub-arrays along the 3rd axis (depth).
- we.flops.concatenate Join a sequence of arrays along an existing axis.
- we.flops.stack Join a sequence of arrays along a new axis.
- we.flops.hstack Stack arrays in sequence horizontally (column wise).
- we.flops.vstack Stack arrays in sequence vertically (row wise).
- we.flops.dstack Stack arrays in sequence depth wise (along third dimension).
Examples
>>> import flopscope.numpy as fnp
>>> x = flops.arange(9.0)
>>> flops.split(x, 3)
[array([0., 1., 2.]), array([3., 4., 5.]), array([6., 7., 8.])]>>> x = flops.arange(8.0)
>>> flops.split(x, [3, 5, 6, 10])
[array([0., 1., 2.]),
array([3., 4.]),
array([5.]),
array([6., 7.]),
array([], dtype=float64)]