NumPy Python Library Cheatsheet

NumPy, short for Numerical Python, is a powerful library in the Python ecosystem that provides support for large, multi-dimensional arrays and matrices, along with a collection of mathematical functions to operate on these elements. Whether you’re a data scientist, machine learning engineer, or a scientific researcher, mastering NumPy is essential for efficient numerical computations. In this cheatsheet, we’ll cover the fundamental operations and features that will empower you to wield NumPy with confidence.

Installation

Before diving into NumPy, ensure that you have it installed. You can install it using:

pip install numpy

Importing NumPy

import numpy as np

Creating Arrays

1D Array

array_1d = np.array([1, 2, 3, 4, 5])

2D Array

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

Common Initialization

zeros_array = np.zeros((3, 3))  # 3x3 array of zeros
ones_array = np.ones((2, 4))    # 2x4 array of ones
identity_matrix = np.eye(3)     # 3x3 identity matrix

Array Operations

Array Shape and Size

shape = array_2d.shape      # Shape of the array
size = array_2d.size        # Total number of elements in the array

Reshape Array

reshaped_array = array_1d.reshape(5, 1)

Transpose Array

transposed_array = array_2d.T

Indexing and Slicing

element = array_1d[2]           # Accessing a single element
subset = array_2d[1:3, 0:2]      # Slicing a 2D array

Element-wise Operations

sum_result = array_1d + 2       # Add 2 to each element
product_result = array_2d * 3    # Multiply each element by 3

Universal Functions

sqrt_result = np.sqrt(array_1d)  # Square root of each element
exp_result = np.exp(array_1d)    # Exponential of each element

Mathematical Operations

Basic Statistics

mean_value = np.mean(array_2d)
median_value = np.median(array_2d)
std_deviation = np.std(array_2d)

Linear Algebra

dot_product = np.dot(array_2d, array_2d.T)  # Dot product of two arrays
matrix_inverse = np.linalg.inv(array_2d)    # Inverse of a matrix

Random Number Generation

random_array = np.random.rand(3, 3)        # 3x3 array of random values between 0 and 1

Broadcasting

NumPy allows operations between arrays of different shapes and sizes, making your code concise and efficient.

broadcasted_result = array_2d + np.array([10, 20, 30])

Saving and Loading Arrays

np.save('saved_array.npy', array_2d)          # Save array to a file
loaded_array = np.load('saved_array.npy')     # Load array from a file

This NumPy cheatsheet covers the basics, but the library is vast and offers many more features and functions. Regular practice and exploration of the official NumPy documentation will deepen your understanding and proficiency. Armed with this cheatsheet, you are well-equipped to handle a wide range of numerical computations efficiently.

FAQ

1. Why should I use NumPy instead of Python lists for numerical operations?

NumPy provides a more efficient and convenient way to perform numerical operations compared to Python lists. NumPy arrays are homogeneous and allow for vectorized operations, which are significantly faster than using loops with standard Python lists. Additionally, NumPy has a wealth of functions for linear algebra, random number generation, and other mathematical operations, making it a go-to library for numerical computing tasks.

2. How do I check the version of NumPy installed on my system?

You can check the version of NumPy installed by using the following command in Python:
import numpy as np print(np.__version__)
This will print the version number of the installed NumPy library.

3. Can I perform element-wise operations on arrays of different shapes in NumPy?

Yes, NumPy supports broadcasting, allowing you to perform element-wise operations on arrays of different shapes and sizes. Broadcasting automatically adjusts the shape of smaller arrays to match the shape of larger arrays, making it easier to write concise and efficient code.

4. How can I speed up my NumPy code?

To optimize NumPy code, consider the following tips:
Use vectorized operations instead of loops to take advantage of NumPy’s optimized C and Fortran code.
Avoid unnecessary copying of arrays. NumPy is designed to work with views of data rather than creating unnecessary copies.
Use NumPy’s built-in functions and ufuncs (universal functions) instead of custom functions for common operations.

5. What is the difference between np.array and np.ndarray in NumPy?

In practice, there is no significant difference between np.array and np.ndarray. Both are used to create arrays in NumPy. The np.array function is a convenience function that infers the data type from the input, while np.ndarray is the class of array objects. You can use either depending on your preference, but np.array is more commonly used for simplicity and readability.