Introduction to NumPy
What is NumPy?
Section titled “What is NumPy?”NumPy (Numerical Python) is the most important library for numerical computing in Python.
It provides:
- A fast, memory-efficient array object:
ndarray - Vectorized operations (operate on whole arrays without Python loops)
- Linear algebra, randomness, statistics, and more
NumPy is the foundation for many data tools:
- Pandas
- SciPy
- Scikit-learn
- Matplotlib
Why NumPy is fast
Section titled “Why NumPy is fast”Python lists are flexible, but they’re not optimized for heavy numeric work.
NumPy arrays are fast because:
- They store data in contiguous memory blocks
- They have a fixed data type (
dtype) - Many operations run in optimized C code under the hood
flowchart LR A["Python list
(scattered objects)"] --> B["for loop in Python"] B --> C["Slow: type-checked
every single element"] D["NumPy ndarray
(contiguous memory, fixed dtype)"] --> E["Vectorized C loop"] E --> F["Fast: no per-element overhead"]
Installing NumPy
Section titled “Installing NumPy”With pip
Section titled “With pip”pip install numpyWith conda
Section titled “With conda”conda install numpyImporting NumPy
Section titled “Importing NumPy”The standard import alias is np:
import numpy as npCheck version:
import numpy as np
print(np.__version__)NumPy arrays vs Python lists
Section titled “NumPy arrays vs Python lists”Python list example
Section titled “Python list example”a = [1, 2, 3]
b = [4, 5, 6]
# This concatenates lists (not element-wise addition)
print(a + b) # [1, 2, 3, 4, 5, 6]NumPy array example
Section titled “NumPy array example”import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# Element-wise addition
print(a + b) # [5 7 9]Key concepts
Section titled “Key concepts”1) ndarray
Section titled “1) ndarray”A NumPy array is called an n-dimensional array (ndarray). It can represent:
- 1D data (vector)
- 2D data (matrix)
- 3D+ data (tensors)
2) shape
Section titled “2) shape”The shape tells you the number of rows/columns (dimensions):
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape) # (2, 3)3) dtype
Section titled “3) dtype”dtype is the element type (int, float, etc.). Every value in an array shares the same dtype — that uniformity is exactly what makes vectorized math possible:
arr = np.array([1, 2, 3])
print(arr.dtype)A tiny analytics-style example
Section titled “A tiny analytics-style example”Imagine you have daily sales and want quick math:
import numpy as np
sales = np.array([100, 120, 90, 150, 130])
print("Total:", sales.sum())
print("Average:", sales.mean())
print("Max:", sales.max())
print("Min:", sales.min())Common mistakes
Section titled “Common mistakes”Mistake 1: Mixing numbers and strings
Section titled “Mistake 1: Mixing numbers and strings”NumPy will try to choose a single dtype. If you mix types, it may convert everything to strings.
Mistake 2: Using Python loops for large data
Section titled “Mistake 2: Using Python loops for large data”NumPy is built for vectorization. Prefer array operations over for loops.
Continue to: NumPy Array Creation to learn all the ways to build arrays (from lists, zeros/ones, ranges, random data, and more).
🧪 Try It Yourself
Section titled “🧪 Try It Yourself”Exercise 1 – Create a NumPy Array
Section titled “Exercise 1 – Create a NumPy Array”Exercise 2 – Lists Concatenate, Arrays Add
Section titled “Exercise 2 – Lists Concatenate, Arrays Add”Exercise 3 – Quick Descriptive Stats
Section titled “Exercise 3 – Quick Descriptive Stats”pch.coffeeTagline
pch.coffeeCtapch.feedbackHeading
pch.feedbackSubheading