Swiftorial Logo
Home
Swift Lessons
Tutorials
Learn More
Career
Resources

Python Advanced - Data Manipulation with NumPy

Performing array manipulation and numerical operations using NumPy

NumPy is a powerful library for numerical computing in Python. It provides support for arrays, matrices, and a wide range of mathematical functions to perform operations on these data structures. This tutorial explores how to use NumPy for array manipulation and numerical operations.

Key Points:

  • NumPy provides support for efficient array and matrix operations.
  • NumPy includes a wide range of mathematical functions.
  • Using NumPy can significantly improve the performance of numerical computations in Python.

Installing NumPy

To use NumPy, you need to install it using pip:


pip install numpy
            

Creating Arrays

NumPy provides various ways to create arrays. Here are some examples:


import numpy as np

# Creating an array from a list
arr = np.array([1, 2, 3, 4, 5])
print(arr)

# Creating an array of zeros
zeros = np.zeros((3, 3))
print(zeros)

# Creating an array of ones
ones = np.ones((2, 2))
print(ones)

# Creating an array with a range of values
range_arr = np.arange(0, 10, 2)
print(range_arr)

# Creating an array with random values
random_arr = np.random.rand(3, 3)
print(random_arr)
            

Array Indexing and Slicing

NumPy allows you to index and slice arrays efficiently. Here are some examples:


# Indexing an array
print(arr[0])  # Output: 1

# Slicing an array
print(arr[1:4])  # Output: [2 3 4]

# Indexing a 2D array
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(matrix[0, 0])  # Output: 1
print(matrix[:, 1])  # Output: [2 5 8]
print(matrix[1, :])  # Output: [4 5 6]
            

Array Operations

NumPy provides a wide range of functions for performing operations on arrays. Here are some examples:


# Element-wise addition
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
print(arr1 + arr2)  # Output: [5 7 9]

# Element-wise multiplication
print(arr1 * arr2)  # Output: [ 4 10 18]

# Dot product
print(np.dot(arr1, arr2))  # Output: 32

# Transpose of a matrix
print(matrix.T)

# Sum of elements
print(np.sum(arr1))  # Output: 6

# Mean of elements
print(np.mean(arr1))  # Output: 2.0

# Standard deviation
print(np.std(arr1))  # Output: 0.816496580927726
            

Broadcasting

Broadcasting allows NumPy to perform operations on arrays of different shapes. Here is an example:


# Broadcasting example
arr = np.array([1, 2, 3])
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(matrix + arr)
# Output:
# [[ 2  4  6]
#  [ 5  7  9]
#  [ 8 10 12]]
            

Linear Algebra

NumPy provides functions for performing linear algebra operations. Here are some examples:


# Matrix multiplication
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])
print(np.matmul(matrix1, matrix2))

# Determinant of a matrix
print(np.linalg.det(matrix1))

# Inverse of a matrix
print(np.linalg.inv(matrix1))

# Eigenvalues and eigenvectors
eigenvalues, eigenvectors = np.linalg.eig(matrix1)
print(eigenvalues)
print(eigenvectors)
            

Advanced Indexing

NumPy supports advanced indexing techniques for selecting and modifying elements in arrays. Here are some examples:


# Boolean indexing
arr = np.array([1, 2, 3, 4, 5])
print(arr[arr > 2])  # Output: [3 4 5]

# Fancy indexing
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(matrix[[0, 1], [1, 2]])  # Output: [2 6]
            

Reshaping and Resizing

NumPy allows you to reshape and resize arrays. Here are some examples:


# Reshaping an array
arr = np.arange(1, 10)
reshaped_arr = arr.reshape((3, 3))
print(reshaped_arr)

# Flattening an array
flattened_arr = reshaped_arr.flatten()
print(flattened_arr)

# Resizing an array
resized_arr = np.resize(arr, (2, 5))
print(resized_arr)
            

Saving and Loading Arrays

NumPy provides functions for saving and loading arrays to and from files. Here are some examples:


# Saving an array to a file
np.save('array.npy', arr)

# Loading an array from a file
loaded_arr = np.load('array.npy')
print(loaded_arr)

# Saving an array to a text file
np.savetxt('array.txt', arr)

# Loading an array from a text file
loaded_txt_arr = np.loadtxt('array.txt')
print(loaded_txt_arr)
            

Summary

In this tutorial, you learned about performing array manipulation and numerical operations using NumPy in Python. NumPy provides support for efficient array and matrix operations, a wide range of mathematical functions, and various tools for manipulating and processing numerical data. Understanding NumPy is essential for numerical computing and data analysis in Python.