Memory-efficient probabilistic counter namely Morris Counter
Project description
Morris Counter
Memory-efficient probabilistic counter namely Morris Counter. This module based on the following paper:
Robert Morris. Counting large numbers of events in small registers. Communications of the ACM, vol. 21, issue 10, pp. 840-842, 1978.
Currently Morris Counter supports Python 3.5 and higher.
Basic idea of Morris Counter is described as follows:
INSTALLATION
$ pip install morris_counter
While the Morris Counter works builtin modules, using third-party package (numpy and mmh3) leads to improve memory-usage and computation time.
$ pip install numpy mmh3
USAGE
from morris_counter import MorrisCounter
mc = MorrisCounter(size=1000000, dtype='uint8', radix=2, seed=3282)
mc.count('ZOC')
# => 1
mc.increment('ZOC')
mc.count('ZOC')
# => 2
_ = [mc.increment('ZOC') for _ in range(2000)]
mc.count('ZOC')
# => 2048
CHANGES
0.1.2 (2019-09-11)
First release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
morris_counter-0.1.2.tar.gz
(4.2 kB
view details)
File details
Details for the file morris_counter-0.1.2.tar.gz
.
File metadata
- Download URL: morris_counter-0.1.2.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8dbd7e89af291452ae542f79082cb7fbdef06e4892ed93eca98f8696f73b0fa6 |
|
MD5 | a57b505d3d30e2a5b774370ad63ebde8 |
|
BLAKE2b-256 | b3f71283fd741eef43096e8f9a77e709851ca8172b167eb62cf43aead97f2f3a |