Statistical Functions in NumPy
Why statistics in NumPy?
Quick descriptive stats help you:
- Understand distributions
- Detect outliers
- Summarize data before modeling/visualization
These aggregation methods (also called reductions) are available both as array methods (arr.mean()arr.mean()) and as top-level NumPy functions (np.mean(arr)np.mean(arr)) — they do the same thing.
Sample data
data
import numpy as np
data = np.array([12, 15, 14, 10, 25, 19, 18])data
import numpy as np
data = np.array([12, 15, 14, 10, 25, 19, 18])Mean, median
mean-median
import numpy as np
data = np.array([12, 15, 14, 10, 25, 19, 18])
print(np.mean(data))
print(np.median(data))mean-median
import numpy as np
data = np.array([12, 15, 14, 10, 25, 19, 18])
print(np.mean(data))
print(np.median(data))Min, max, range
min-max
import numpy as np
data = np.array([12, 15, 14, 10, 25, 19, 18])
print(np.min(data))
print(np.max(data))
print(np.ptp(data)) # peak-to-peak = max - minmin-max
import numpy as np
data = np.array([12, 15, 14, 10, 25, 19, 18])
print(np.min(data))
print(np.max(data))
print(np.ptp(data)) # peak-to-peak = max - minVariance and standard deviation
var-std
import numpy as np
data = np.array([12, 15, 14, 10, 25, 19, 18])
print(np.var(data))
print(np.std(data))var-std
import numpy as np
data = np.array([12, 15, 14, 10, 25, 19, 18])
print(np.var(data))
print(np.std(data))Percentiles / quantiles
percentile
import numpy as np
data = np.array([12, 15, 14, 10, 25, 19, 18])
print(np.percentile(data, 25))
print(np.percentile(data, 50))
print(np.percentile(data, 75))percentile
import numpy as np
data = np.array([12, 15, 14, 10, 25, 19, 18])
print(np.percentile(data, 25))
print(np.percentile(data, 50))
print(np.percentile(data, 75))flowchart LR A["Raw array"] --> B["Center: mean, median"] A --> C["Spread: var, std, ptp"] A --> D["Position: percentile, quantile"] A --> E["Relationship (2 arrays):
cov, corrcoef"]
Working across axes (2D)
axes
import numpy as np
mat = np.array([
[1, 2, 3],
[4, 5, 6]
])
print(np.mean(mat, axis=0)) # per column
print(np.mean(mat, axis=1)) # per rowaxes
import numpy as np
mat = np.array([
[1, 2, 3],
[4, 5, 6]
])
print(np.mean(mat, axis=0)) # per column
print(np.mean(mat, axis=1)) # per rowCorrelation and covariance
corr-cov
import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 6, 8, 10])
cov = np.cov(x, y)
print("cov:\n", cov)
corr = np.corrcoef(x, y)
print("corr:\n", corr)corr-cov
import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 6, 8, 10])
cov = np.cov(x, y)
print("cov:\n", cov)
corr = np.corrcoef(x, y)
print("corr:\n", corr)Next
Continue to: Saving and Loading NumPy Data to persist arrays efficiently.
🧪 Try It Yourself
Exercise 1 – Mean and Median
Exercise 2 – Standard Deviation
Exercise 3 – Median via the 50th Percentile
If this helped you, consider buying me a coffee ☕
Buy me a coffeeWas this page helpful?
Let us know how we did
