9 releases (5 breaking)

0.6.0 Nov 5, 2024
0.5.0 Nov 5, 2024
0.4.1 Nov 4, 2024
0.3.0 Nov 1, 2024
0.1.2 Oct 31, 2024

#403 in Rust patterns

Download history 421/week @ 2024-10-28 367/week @ 2024-11-04

788 downloads per month

GPL-3.0-only

47KB
1K SLoC

iterstats

Statistics for rust iterators.

Extra iterator methods for common statistics operations.

To most easily get the functionality of this crate, import the Iterstats trait. See the methods belonging to the trait for all available functionality.

Example

// import the `Iterstats` trait into scope
use iterstats::Iterstats;

// start with your dataset
let data = [1f32, 2., 3., 4.];

// say you want the mean
let mean = data.iter().mean();
assert_eq!(mean, 2.5);

// get the variance
let variance = data.iter().variance();
assert_eq!(variance, 1.25);

// or standard deviation
let stddev = data.iter().stddev();
assert_eq!(stddev, 1.25f32.sqrt());

// or the zscore of each data point
let zscores = data.iter().zscore().collect::<Vec<_>>();
assert_eq!(zscores, vec![-1.3416407, -0.4472136, 0.4472136, 1.3416407]);

Additional

Shoutout to itertools, which was one of the inspirations for this project.

Dependencies

~150KB