nansum, nanmean, nanmedian, nanstd, nanvar,
nanmin, nanmax, nanprod, nancount
— mirrors numpy.nan* functions in pandas workflows.
Enter a comma-separated list of numbers (use NaN, null for missing).
| Function | Description | Empty/all-NaN returns | pandas / numpy equivalent |
|---|---|---|---|
nancount(input) | Count of valid (non-NaN) numeric values | 0 | np.count_nonzero(~np.isnan(a)) |
nansum(input) | Sum, ignoring NaN/null | 0 | np.nansum(a) |
nanmean(input) | Mean, ignoring NaN/null | NaN | np.nanmean(a) |
nanmedian(input) | Median, ignoring NaN/null | NaN | np.nanmedian(a) |
nanvar(input, {ddof}) | Variance (ddof=1 default) | NaN | np.nanvar(a, ddof=1) |
nanstd(input, {ddof}) | Std deviation (ddof=1 default) | NaN | np.nanstd(a, ddof=1) |
nanmin(input) | Minimum, ignoring NaN/null | NaN | np.nanmin(a) |
nanmax(input) | Maximum, ignoring NaN/null | NaN | np.nanmax(a) |
nanprod(input) | Product, ignoring NaN/null | 1 | np.nanprod(a) |
import { nansum, nanmean, nanmedian, nanstd } from "tsb";
const data = [1, 2, NaN, null, 3, 5];
nansum(data); // 11
nanmean(data); // 2.75
nanmedian(data); // 2.5
nanstd(data); // 1.708...
import { Series, nansum, nanmean, nancount } from "tsb";
const s = new Series({ data: [10, null, 30, NaN, 50] });
nancount(s); // 3
nansum(s); // 90
nanmean(s); // 30
import { nanvar, nanstd } from "tsb";
const xs = [2, 4, 4, 4, 5, 5, 7, 9];
// Sample (ddof=1, default)
nanvar(xs); // ≈ 4.571
nanstd(xs); // ≈ 2.138
// Population (ddof=0)
nanvar(xs, { ddof: 0 }); // 4.0
nanstd(xs, { ddof: 0 }); // 2.0
See how NaN values affect results with and without nan-ignoring functions.