📖 Guide
NumPy — Complete Reference
Essential NumPy commands for array manipulation and numerical computing in Python.
81 commands across 10 categories
Array CreationArray PropertiesIndexing & SlicingReshapingMath OperationsStatisticsLinear AlgebraRandomBroadcastingCommon Patterns
Array Creation
| Command | Description |
|---|---|
np.array([1, 2, 3]) | Create array from a Python list |
np.zeros((3, 4)) | Create 3×4 array filled with zeros |
np.ones((2, 3)) | Create 2×3 array filled with ones |
np.full((3, 3), 7) | Create 3×3 array filled with value 7 |
np.arange(0, 10, 2) | Create array with values [0, 2, 4, 6, 8] |
np.linspace(0, 1, 5) | Create 5 evenly spaced values between 0 and 1 |
np.eye(3) | Create 3×3 identity matrix |
np.empty((2, 3)) | Create uninitialized 2×3 array (fast, values undefined) |
np.zeros_like(arr) | Create zeros array with same shape/type as arr |
Array Properties
| Command | Description |
|---|---|
arr.shapee.g. (3, 4) | Tuple of array dimensions |
arr.ndim | Number of dimensions |
arr.size | Total number of elements |
arr.dtypee.g. float64, int32 | Data type of elements |
arr.itemsize | Size in bytes of each element |
arr.nbytes | Total bytes consumed by the array |
arr.T | Transpose of the array |
Indexing & Slicing
| Command | Description |
|---|---|
arr[0] | First element (1D) or first row (2D) |
arr[-1] | Last element or last row |
arr[1:4] | Slice elements at index 1, 2, 3 |
arr[::2] | Every other element |
arr[1, 2] | Element at row 1, column 2 (2D array) |
arr[:, 0] | All rows, first column |
arr[arr > 5] | Boolean indexing — elements greater than 5 |
arr[[0, 2, 4]] | Fancy indexing — select specific indices |
np.where(arr > 0, arr, 0) | Conditional selection: keep positives, replace rest with 0 |
Reshaping
| Command | Description |
|---|---|
arr.reshape(3, 4) | Reshape to 3×4 (total elements must match) |
arr.reshape(-1, 2) | Reshape with auto-calculated dimension |
arr.flatten() | Collapse to 1D (returns copy) |
arr.ravel() | Collapse to 1D (returns view when possible) |
np.expand_dims(arr, axis=0) | Add new axis — (3,) becomes (1, 3) |
arr.squeeze() | Remove dimensions of size 1 |
np.concatenate([a, b], axis=0) | Join arrays along an axis |
np.stack([a, b], axis=0) | Stack arrays along a new axis |
np.split(arr, 3) | Split array into 3 equal parts |
Math Operations
| Command | Description |
|---|---|
arr + 10 | Add scalar to every element |
a + b | Element-wise addition of two arrays |
a * b | Element-wise multiplication |
np.sqrt(arr) | Square root of each element |
np.exp(arr) | e raised to the power of each element |
np.log(arr) | Natural logarithm of each element |
np.abs(arr) | Absolute value of each element |
np.round(arr, 2) | Round to 2 decimal places |
np.clip(arr, 0, 255) | Clip values to range [0, 255] |
Statistics
| Command | Description |
|---|---|
arr.sum() | Sum of all elements |
arr.mean() | Mean of all elements |
arr.std() | Standard deviation |
arr.min() / arr.max() | Minimum and maximum values |
arr.argmin() / arr.argmax() | Index of min/max value |
np.median(arr) | Median value |
arr.sum(axis=0) | Sum along columns (collapse rows) |
arr.cumsum() | Cumulative sum |
np.percentile(arr, 75) | 75th percentile value |
Linear Algebra
| Command | Description |
|---|---|
np.dot(a, b) | Dot product of two arrays |
a @ b | Matrix multiplication (Python 3.5+) |
np.linalg.inv(A) | Inverse of matrix A |
np.linalg.det(A) | Determinant of matrix A |
np.linalg.eig(A) | Eigenvalues and eigenvectors |
np.linalg.solve(A, b) | Solve linear system Ax = b |
np.linalg.norm(arr) | Vector/matrix norm |
np.linalg.svd(A) | Singular value decomposition |
Random
| Command | Description |
|---|---|
rng = np.random.default_rng(42) | Create random generator with seed |
rng.random((3, 3)) | 3×3 array of uniform random [0, 1) |
rng.integers(0, 10, size=(3,)) | Random integers from 0 to 9 |
rng.normal(0, 1, size=(3, 3)) | 3×3 from standard normal distribution |
rng.choice([1, 2, 3, 4], size=2) | Random selection from array |
rng.shuffle(arr) | Shuffle array in place |
rng.permutation(arr) | Return shuffled copy |
Broadcasting
| Command | Description |
|---|---|
arr + 1 | Scalar is broadcast to every element |
arr * np.array([1, 2, 3])e.g. (3,4) * (4,) works if last dims match | 1D array broadcast across rows |
a[:, np.newaxis] + be.g. (3,1) + (3,) → (3,3) | Add new axis for broadcasting |
np.broadcast_shapes((3,1), (1,4)) | Check resulting broadcast shape → (3, 4) |
np.broadcast_to(arr, (3, 4)) | Broadcast array to a specific shape |
arr - arr.mean(axis=0) | Subtract column means (common normalization) |
Common Patterns
| Command | Description |
|---|---|
arr.astype(np.float32) | Convert array to different dtype |
np.save('data.npy', arr) | Save array to binary file |
np.load('data.npy') | Load array from binary file |
np.savetxt('data.csv', arr, delimiter=',') | Save as CSV |
np.unique(arr) | Get sorted unique values |
np.sort(arr) | Return sorted copy of array |
np.argsort(arr) | Indices that would sort the array |
np.isinf(arr) / np.isnan(arr) | Check for infinity or NaN values |
📖 Free, searchable command reference. Bookmark this page for quick access.