Home
Introduction to NumPy
NumPy is a fundamental package for scientific computing in Python. It provides support for arrays, matrices, and many mathematical functions to operate on these data structures.
NumPy Installation
NumPy can be installed using package managers like pip or conda. The command pip install numpy
or conda install numpy
installs the package.
Creating Arrays
NumPy provides several ways to create arrays, including functions like numpy.array
, numpy.zeros
, numpy.ones
, numpy.arange
, and numpy.linspace
.
Array Attributes
NumPy arrays have various attributes such as shape, size, dtype, ndim, and itemsize that provide information about the array's properties.
Array Indexing and Slicing
NumPy supports indexing and slicing similar to Python lists, allowing for the selection of specific elements, subarrays, and multidimensional slices.
Array Manipulation
NumPy provides functions for reshaping, resizing, flattening, and transposing arrays, such as numpy.reshape
, numpy.resize
, numpy.ravel
, and numpy.transpose
.
Element-wise Operations
NumPy supports element-wise operations for arithmetic, comparison, and logical operations on arrays. Functions like numpy.add
, numpy.subtract
, numpy.multiply
, and numpy.divide
are commonly used.
Broadcasting
Broadcasting is a powerful feature in NumPy that allows arithmetic operations on arrays of different shapes. It implicitly expands the smaller array to match the shape of the larger one.
Mathematical Functions
NumPy provides a wide range of mathematical functions, including trigonometric, exponential, and logarithmic functions. Examples include numpy.sin
, numpy.cos
, numpy.exp
, and numpy.log
.
Statistical Functions
NumPy includes statistical functions to perform operations such as mean, median, standard deviation, and variance. Functions include numpy.mean
, numpy.median
, numpy.std
, and numpy.var
.
Linear Algebra
NumPy provides functions for linear algebra operations, including matrix multiplication, inversion, eigenvalues, and singular value decomposition. Functions include numpy.dot
, numpy.linalg.inv
, numpy.linalg.eig
, and numpy.linalg.svd
.
Random Number Generation
NumPy's random module provides functions for generating random numbers and performing random sampling. Functions include numpy.random.rand
, numpy.random.randint
, and numpy.random.normal
.
Advanced Indexing
Advanced Indexing in NumPy allows for more complex selections using boolean arrays, integer arrays, and combinations of basic and advanced indexing.
Masked Arrays
Masked Arrays in NumPy are arrays that may have missing or invalid entries. The numpy.ma
module provides support for masked arrays and operations on them.
Structured Arrays
Structured Arrays are NumPy arrays with a structured data type, allowing each element to be a record with named fields. They are useful for handling heterogeneous data.
Memory Management
Memory Management in NumPy involves understanding the array's memory layout, views, copies, and strategies to optimize memory usage. Functions like numpy.copy
and numpy.view
are used for managing memory.
NumPy and C Extensions
NumPy can interface with C/C++ code using the ctypes library or Cython. This allows for performance optimization by leveraging compiled code.
Fast Fourier Transform
NumPy provides functions for performing Fast Fourier Transform, which is useful for signal processing. The primary function is numpy.fft.fft
.
Polynomials
NumPy supports polynomial operations with the numpy.polynomial
module, including polynomial creation, arithmetic, and finding roots. Functions include numpy.polynomial.Polynomial
and numpy.polynomial.polynomial.polyval
.
Performance Optimization
NumPy provides tools and techniques for optimizing performance, including vectorization, avoiding loops, and using efficient array operations.
Parallel Computing
NumPy supports parallel computing through libraries like Dask and Numba, enabling efficient handling of large datasets and computational tasks.
Integration with Pandas
NumPy integrates seamlessly with the Pandas library for data analysis, allowing for efficient manipulation and analysis of large datasets.
Integration with SciPy
NumPy forms the foundation of the SciPy library, which provides additional functionality for scientific and technical computing, including optimization, integration, and more.
Saving and Loading Arrays
NumPy provides functions for saving and loading arrays to and from disk, including numpy.save
, numpy.load
, and numpy.savetxt
for various file formats.
Testing and Debugging
NumPy includes utilities for testing and debugging, such as numpy.testing
for writing test cases and verifying the correctness of code.
Mathematical Constants
NumPy includes a set of mathematical constants like pi, e, and infinity, accessible through numpy.pi
, numpy.e
, and numpy.inf
.