Numpy Tutorial

Creating NumPy Array

NumPy Array Manipulation

Matrix in NumPy

Operations on NumPy Array

Reshaping NumPy Array

Indexing NumPy Array

Arithmetic operations on NumPy Array

Linear Algebra in NumPy Array

NumPy and Random Data

Sorting and Searching in NumPy Array

Universal Functions

Working With Images

Projects and Applications with NumPy

Splitting Arrays in NumPy

Splitting arrays is a commonly used operation in data processing, especially when dealing with large datasets. NumPy offers a range of functions to divide arrays into multiple sub-arrays. In this tutorial, we'll explore how to split arrays in NumPy.

1. Importing NumPy

Start by importing the NumPy library:

import numpy as np

2. Basic Splitting: numpy.split()

The split() function divides an array into multiple sub-arrays.

arr = np.array([1, 2, 3, 4, 5, 6])
splitted = np.split(arr, 3)  # Split into 3 equal-sized sub-arrays
print(splitted)

Output:

[array([1, 2]), array([3, 4]), array([5, 6])]

You can also specify custom splitting points:

splitted = np.split(arr, [2, 4])  # Split after the second and fourth element
print(splitted)

Output:

[array([1, 2]), array([3, 4]), array([5, 6])]

3. Horizontal Split: numpy.hsplit()

This function is used to split an array into multiple sub-arrays horizontally (column-wise).

arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
splitted = np.hsplit(arr_2d, 3)
print(splitted)

Output:

[array([[1], [4], [7]]), array([[2], [4], [8]]), array([[3], [6], [9]])]

4. Vertical Split: numpy.vsplit()

This function is used to split an array into multiple sub-arrays vertically (row-wise).

splitted = np.vsplit(arr_2d, 3)
print(splitted)

Output:

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

5. Depth Split: numpy.dsplit()

For arrays with three or more dimensions, you can use dsplit() to split along the third axis.

arr_3d = np.arange(27).reshape(3, 3, 3)
splitted = np.dsplit(arr_3d, 3)
print(splitted)

6. Using array_split() for Uneven Splitting:

If you're trying to split an array into an unequal size, you can use array_split():

arr = np.array([1, 2, 3, 4, 5, 6])
splitted = np.array_split(arr, 5)
print(splitted)

Output:

[array([1, 2]), array([3]), array([4]), array([5]), array([6])]

Key Takeaways:

  • Use split() for basic splitting. Define the number of equal parts or provide specific indices where the split should occur.

  • For 2D arrays, hsplit() divides horizontally (column-wise), while vsplit() divides vertically (row-wise).

  • For 3D arrays, use dsplit() to split along the third dimension.

  • array_split() is versatile and can handle uneven splitting.

Understanding how to efficiently split arrays in NumPy is essential, especially when working with large datasets. These functions give you flexibility in dividing arrays according to your requirements.

1. How to split arrays in Python with NumPy:

NumPy provides the numpy.split() function to split arrays into multiple sub-arrays along a specified axis.

import numpy as np

# Sample array
original_array = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])

# Split the array into three sub-arrays
split_arrays = np.split(original_array, 3)

print("Original Array:", original_array)
print("Split Arrays:", split_arrays)

2. Splitting techniques for arrays in NumPy:

NumPy allows for various splitting techniques, including equal splitting, splitting at specific indices, and splitting along multiple axes.

# Equal splitting
equal_split = np.split(original_array, 3)

# Splitting at specific indices
indices_split = np.split(original_array, [3, 6])

print("Equal Split:", equal_split)
print("Indices Split:", indices_split)

3. Numpy array splitting methods and examples:

Explore different splitting methods and examples, such as horizontal and vertical splitting.

# Horizontal splitting
horizontal_split = np.hsplit(original_array.reshape(3, 3), 3)

# Vertical splitting
vertical_split = np.vsplit(original_array.reshape(3, 3), 3)

print("Horizontal Split:", horizontal_split)
print("Vertical Split:", vertical_split)

4. Python numpy.split() function usage:

The numpy.split() function can take a sequence of indices or a number of equal divisions as an argument.

# Splitting with a sequence of indices
split_indices = np.split(original_array, [2, 5])

# Splitting into equal parts
equal_parts = np.split(original_array, 3)

print("Split with Indices:", split_indices)
print("Equal Parts:", equal_parts)

5. Sample code for splitting arrays in NumPy:

A complete sample code showcasing the use of numpy.split() for array splitting.

# Sample array
original_array = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])

# Split the array into three sub-arrays
split_arrays = np.split(original_array, 3)

print("Original Array:", original_array)
print("Split Arrays:", split_arrays)

6. Splitting arrays along specified axes in NumPy:

Use numpy.split() to split arrays along specified axes in multi-dimensional arrays.

# Multi-dimensional array
original_array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# Split along the columns (axis=1)
split_along_columns = np.split(original_array_2d, 3, axis=1)

print("Original 2D Array:", original_array_2d)
print("Split Along Columns:", split_along_columns)

7. Horizontal and vertical array splitting in NumPy:

Explore horizontal and vertical splitting using numpy.hsplit() and numpy.vsplit().

# Horizontal splitting
horizontal_split = np.hsplit(original_array_2d, 3)

# Vertical splitting
vertical_split = np.vsplit(original_array_2d, 3)

print("Horizontal Split:", horizontal_split)
print("Vertical Split:", vertical_split)

8. Python numpy array splitting vs indexing:

Compare array splitting with numpy.split() to indexing for achieving similar results.

# Using numpy.split()
split_result = np.split(original_array, [2, 5])

# Using indexing
indexing_result = [original_array[:2], original_array[2:5], original_array[5:]]

print("Numpy Split Result:", split_result)
print("Indexing Result:", indexing_result)