statstream
is a lightweight Python package providing data analysis and statistics utilities for streaming data.
Its main goal is to provide single-pass variants of conventional numpy
data analysis and statistics functionality for streaming data that is
either generated on the fly or to large to be handled at once. Data can be
streamed as in chunks called mini-batches, which makes statstream
extremely useful in combination with machine learning and deep learning
packages like keras, tensorflow, or pytorch.
statstream
functions consume iterators providing batches of data.
They compute statistics of these batches and combine them to obtain statistics
for the full data set.
import statstream
mean = statstream.streaming_mean(some_iterable)
The Overview and Examples sections of our documentation provide more realistic and complete examples.
statstream
is released under the MIT license,
its documentation lives at Read the Docs,
the code on GitHub,
and the latest release can be found on PyPI.
It’s tested on Python 2.7 and 3.5+.
If you'd like to contribute to statstream
you're most welcome.
We have written a short guide to help you get you started!
Additional information on the algorithmic aspects of statstream
can be found
in the following works:
- Tony F. Chan & Gene H. Golub & Randall J. LeVeque, “Updating formulae and a pairwise algorithm for computing sample variances”, 1979
- Radim, Rehurek, “Scalability of Semantic Analysis in Natural Language Processing”, 2011
During the setup of this project we were heavily influenced and inspired by the works of Hynek Schlawack and in particular his attrs package and blog posts on testing and packaing and deploying to PyPI. Thank you for sharing your experiences and insights.