🔢 NaN-Ignoring Aggregates

nansum, nanmean, nanmedian, nanstd, nanvar, nanmin, nanmax, nanprod, nancount — mirrors numpy.nan* functions in pandas workflows.

🧮 Live Calculator

Enter a comma-separated list of numbers (use NaN, null for missing).

📖 Function Reference

Function Description Empty/all-NaN returns pandas / numpy equivalent
nancount(input)Count of valid (non-NaN) numeric values0np.count_nonzero(~np.isnan(a))
nansum(input)Sum, ignoring NaN/null0np.nansum(a)
nanmean(input)Mean, ignoring NaN/nullNaNnp.nanmean(a)
nanmedian(input)Median, ignoring NaN/nullNaNnp.nanmedian(a)
nanvar(input, {ddof})Variance (ddof=1 default)NaNnp.nanvar(a, ddof=1)
nanstd(input, {ddof})Std deviation (ddof=1 default)NaNnp.nanstd(a, ddof=1)
nanmin(input)Minimum, ignoring NaN/nullNaNnp.nanmin(a)
nanmax(input)Maximum, ignoring NaN/nullNaNnp.nanmax(a)
nanprod(input)Product, ignoring NaN/null1np.nanprod(a)

💡 Usage Examples

Basic array usage
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...
# Python / pandas equivalent import numpy as np data = [1, 2, np.nan, np.nan, 3, 5] np.nansum(data) # 11.0 np.nanmean(data) # 2.75 np.nanmedian(data) # 2.5 np.nanstd(data, ddof=1) # 1.708...
Using with Series
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
# Python / pandas equivalent import pandas as pd, numpy as np s = pd.Series([10, np.nan, 30, np.nan, 50]) s.count() # 3 s.sum() # 90.0 s.mean() # 30.0
Variance and std with ddof
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
# Python / pandas equivalent import numpy as np xs = [2, 4, 4, 4, 5, 5, 7, 9] np.nanvar(xs, ddof=1) # 4.571... np.nanstd(xs, ddof=1) # 2.138... np.nanvar(xs, ddof=0) # 4.0 np.nanstd(xs, ddof=0) # 2.0

⚡ NaN Impact Demo

See how NaN values affect results with and without nan-ignoring functions.