NumPy | array_split method
Start your free 7-days trial now!
NumPy's array_split(~)
method divides up the input array as per the specified parameters.
The parameters and the functionality of the two array_split(~)
and split(~)
are the exact same. The key difference is that array_split(~)
allows for unequal division given an int for the 2nd parameter, while the split(~)
method would throw an error.
For array_split(~)
, the last partition would hold less data to accommodate he unequal division.
Parameters
1. a
| array-like
The input array that you want to split.
2. indices_or_sections
| int
If an int, n, is given, then the input array will be split up into n equal arrays along the specified axis. To be more precise about where to split up the arrays, provide a 1D array of sorted integers instead.
3. axis
| None
or int
| optional
The axis along which to perform the split. By default, axis=0
.
Return value
A list containing the split up NumPy arrays.
Examples
Basic usage
np.array_split(a, 2)
[array([4, 5, 6]), array([7, 8, 9])]
When the split is not even, no error is thrown:
np.array_split(a, 2)
[array([4, 5, 6]), array([7, 8])]
Splitting via slicing
np.array_split(a, (2,3))
[array([4, 5]), array([6]), array([7, 8, 9])]
Here, we're slicing like follows:
a[:2]a[2:3]a[3:]
Splitting 2D arrays
Consider the following 2D array:
a
array([[1, 2, 3, 4], [5, 6, 7, 8]])
Chop horizontally
To split a
by rows:
np.array_split(a, 2, axis=0)
[array([[1, 2, 3, 4]]), array([[5, 6, 7, 8]])]
Chop vertically
To split a
by columns:
np.array_split(a, 2, axis=1)
[array([[1, 2], [5, 6]]), array([[3, 4], [7, 8]])]
Slicing
To split a
by columns via slicing:
np.array_split(a, (2,3), axis=1)
[array([[1, 2], [5, 6]]), array([[3], [7]]), array([[4], [8]])]
Here, the columns we obtain are:
first two columnsthird columnfourth column