
- NumPy - Home
- NumPy - Introduction
- NumPy - Environment
- NumPy Arrays
- NumPy - Ndarray Object
- NumPy - Data Types
- NumPy Creating and Manipulating Arrays
- NumPy - Array Creation Routines
- NumPy - Array Manipulation
- NumPy - Array from Existing Data
- NumPy - Array From Numerical Ranges
- NumPy - Iterating Over Array
- NumPy - Reshaping Arrays
- NumPy - Concatenating Arrays
- NumPy - Stacking Arrays
- NumPy - Splitting Arrays
- NumPy - Flattening Arrays
- NumPy - Transposing Arrays
- NumPy Indexing & Slicing
- NumPy - Indexing & Slicing
- NumPy - Indexing
- NumPy - Slicing
- NumPy - Advanced Indexing
- NumPy - Fancy Indexing
- NumPy - Field Access
- NumPy - Slicing with Boolean Arrays
- NumPy Array Attributes & Operations
- NumPy - Array Attributes
- NumPy - Array Shape
- NumPy - Array Size
- NumPy - Array Strides
- NumPy - Array Itemsize
- NumPy - Broadcasting
- NumPy - Arithmetic Operations
- NumPy - Array Addition
- NumPy - Array Subtraction
- NumPy - Array Multiplication
- NumPy - Array Division
- NumPy Advanced Array Operations
- NumPy - Swapping Axes of Arrays
- NumPy - Byte Swapping
- NumPy - Copies & Views
- NumPy - Element-wise Array Comparisons
- NumPy - Filtering Arrays
- NumPy - Joining Arrays
- NumPy - Sort, Search & Counting Functions
- NumPy - Searching Arrays
- NumPy - Union of Arrays
- NumPy - Finding Unique Rows
- NumPy - Creating Datetime Arrays
- NumPy - Binary Operators
- NumPy - String Functions
- NumPy - Matrix Library
- NumPy - Linear Algebra
- NumPy - Matplotlib
- NumPy - Histogram Using Matplotlib
- NumPy Sorting and Advanced Manipulation
- NumPy - Sorting Arrays
- NumPy - Sorting along an axis
- NumPy - Sorting with Fancy Indexing
- NumPy - Structured Arrays
- NumPy - Creating Structured Arrays
- NumPy - Manipulating Structured Arrays
- NumPy - Record Arrays
- Numpy - Loading Arrays
- Numpy - Saving Arrays
- NumPy - Append Values to an Array
- NumPy - Swap Columns of Array
- NumPy - Insert Axes to an Array
- NumPy Handling Missing Data
- NumPy - Handling Missing Data
- NumPy - Identifying Missing Values
- NumPy - Removing Missing Data
- NumPy - Imputing Missing Data
- NumPy Performance Optimization
- NumPy - Performance Optimization with Arrays
- NumPy - Vectorization with Arrays
- NumPy - Memory Layout of Arrays
- Numpy Linear Algebra
- NumPy - Linear Algebra
- NumPy - Matrix Library
- NumPy - Matrix Addition
- NumPy - Matrix Subtraction
- NumPy - Matrix Multiplication
- NumPy - Element-wise Matrix Operations
- NumPy - Dot Product
- NumPy - Matrix Inversion
- NumPy - Determinant Calculation
- NumPy - Eigenvalues
- NumPy - Eigenvectors
- NumPy - Singular Value Decomposition
- NumPy - Solving Linear Equations
- NumPy - Matrix Norms
- NumPy Element-wise Matrix Operations
- NumPy - Sum
- NumPy - Mean
- NumPy - Median
- NumPy - Min
- NumPy - Max
- NumPy Set Operations
- NumPy - Unique Elements
- NumPy - Intersection
- NumPy - Union
- NumPy - Difference
- NumPy Random Number Generation
- NumPy - Random Generator
- NumPy - Permutations & Shuffling
- NumPy - Uniform distribution
- NumPy - Normal distribution
- NumPy - Binomial distribution
- NumPy - Poisson distribution
- NumPy - Exponential distribution
- NumPy - Rayleigh Distribution
- NumPy - Logistic Distribution
- NumPy - Pareto Distribution
- NumPy - Visualize Distributions With Sea born
- NumPy - Matplotlib
- NumPy - Multinomial Distribution
- NumPy - Chi Square Distribution
- NumPy - Zipf Distribution
- NumPy File Input & Output
- NumPy - I/O with NumPy
- NumPy - Reading Data from Files
- NumPy - Writing Data to Files
- NumPy - File Formats Supported
- NumPy Mathematical Functions
- NumPy - Mathematical Functions
- NumPy - Trigonometric functions
- NumPy - Exponential Functions
- NumPy - Logarithmic Functions
- NumPy - Hyperbolic functions
- NumPy - Rounding functions
- NumPy Fourier Transforms
- NumPy - Discrete Fourier Transform (DFT)
- NumPy - Fast Fourier Transform (FFT)
- NumPy - Inverse Fourier Transform
- NumPy - Fourier Series and Transforms
- NumPy - Signal Processing Applications
- NumPy - Convolution
- NumPy Polynomials
- NumPy - Polynomial Representation
- NumPy - Polynomial Operations
- NumPy - Finding Roots of Polynomials
- NumPy - Evaluating Polynomials
- NumPy Statistics
- NumPy - Statistical Functions
- NumPy - Descriptive Statistics
- NumPy Datetime
- NumPy - Basics of Date and Time
- NumPy - Representing Date & Time
- NumPy - Date & Time Arithmetic
- NumPy - Indexing with Datetime
- NumPy - Time Zone Handling
- NumPy - Time Series Analysis
- NumPy - Working with Time Deltas
- NumPy - Handling Leap Seconds
- NumPy - Vectorized Operations with Datetimes
- NumPy ufunc
- NumPy - ufunc Introduction
- NumPy - Creating Universal Functions (ufunc)
- NumPy - Arithmetic Universal Function (ufunc)
- NumPy - Rounding Decimal ufunc
- NumPy - Logarithmic Universal Function (ufunc)
- NumPy - Summation Universal Function (ufunc)
- NumPy - Product Universal Function (ufunc)
- NumPy - Difference Universal Function (ufunc)
- NumPy - Finding LCM with ufunc
- NumPy - ufunc Finding GCD
- NumPy - ufunc Trigonometric
- NumPy - Hyperbolic ufunc
- NumPy - Set Operations ufunc
- NumPy Useful Resources
- NumPy - Quick Guide
- NumPy - Cheatsheet
- NumPy - Useful Resources
- NumPy - Discussion
- NumPy Compiler
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])]