Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Numpy array_split() Function



The Numpy array_split() function is used to split an array into multiple sub-arrays of approximately equal size along a specified axis. This function is a part of the numpy module and is flexible when dividing an array into sections, even if the array length does not divide evenly.

The two functions, numpy.array_split() and numpy.split(), are used for splitting the given array. The difference between these functions, is that numpy.array_split() can deal with arrays that cannot be divided evenly and does not raise an error at such times, whereas numpy.split() requires this division to be even and raises a ValueError in case of arrays that cannot be divided into even parts.

Syntax

Following is the syntax of the Numpy array_split() function −

numpy.array_split(array, indices_or_sections, axis=0)

Parameters

Following are the parameters of the Numpy array_split() function −

  • array - The array to be split.
  • indices_or_sections - If an integer, specifies the number of equal-sized sub-arrays to create. If a list, specifies the indices at which to split the array.
  • axis (optional) - The axis along which to split the array. The default is 0 (split along rows for 2D arrays).

Return Values

This function returns a list of sub-arrays created by splitting the original array along the specified axis.

Example

Following is a basic example that demonstrates splitting a 1D array into three sub-arrays using Numpy array_split() function −

import numpy as np
my_Array = np.array([1, 2, 3, 4, 5, 6, 7, 8])
split_Array = np.array_split(my_Array, 3)
print("Array -", my_Array)
print("Split Array -", split_Array)

Output

Following is the output of the above code −

Array - [1 2 3 4 5 6 7 8]
Split Array - [array([1, 2, 3]), array([4, 5, 6]), array([7, 8])]

Example - Splitting a 2D Array Along Columns

In the following example, we have split a 2D array into three sub-arrays along the columns by specifying the axis parameter as 1 in numpy.array_split()

import numpy as np
my_array = np.array([[10, 20, 30, 40], [50, 60, 70, 80]])
split_array = np.array_split(my_array, 3, axis=1)
print("Array -\n", my_array)
print("Split Array -", split_array)

Output

Following is the output of the above code −

Array -
 [[10 20 30 40]
  [50 60 70 80]]
Split Array - [array([[10, 20],
       [50, 60]]), array([[30],
       [70]]), array([[40],
       [80]])]

Example - Splitting a 2D Array Along Rows

Here, we have split a 2D array along the rows (axis=0) using numpy.array_split() to create uneven sub-arrays −

import numpy as np
my_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
split_array = np.array_split(my_array, 3, axis=0)
print("Array -\n", my_array)
print("Split Array -", split_array)

Output

The output of the above code is as follows:

Array -
 [[ 1  2  3]
  [ 4  5  6]
  [ 7  8  9]
  [10 11 12]]
Split Array - [array([[1, 2, 3],
       [4, 5, 6]]), array([[7, 8, 9]]), array([[10, 11, 12]])]

Example - Splitting at Specified Indices

We can also specify exact indices at which to split the array in the form of a list. Here, we split the array at indices 2 and 5 along a 1D array using numpy.array_split()

import numpy as np
my_array = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
split_array = np.array_split(my_array, [2, 5])
print("Array -", my_array)
print("Split Array -", split_array)

Output

Following is the output of the above code −

Array - [1 2 3 4 5 6 7 8 9]
Split Array - [array([1, 2]), array([3, 4, 5]), array([6, 7, 8, 9])]

Example - Handling Uneven Splits

When the array size does not divide evenly by the specified number of sections, numpy.array_split() ensures the last few sub-arrays may be smaller than others without raising an error −

import numpy as np
my_array = np.array([10, 20, 30, 40, 50])
split_array = np.array_split(my_array, 4)
print("Array -", my_array)
print("Split Array -", split_array)

Output

Following is the output of the above code −

Array - [10 20 30 40 50]
Split Array - [array([10, 20]), array([30]), array([40]), array([50])]
numpy_array_manipulation.htm
Advertisements