A Python NumPy implementation of buffer.
$ pip install git+https://github.com/scls19fr/numpy-buffer/
See description of a ring buffer (or circular buffer).
In [1]: from numpy_buffer import RingBuffer
In [2]: N = 10
In [3]: ring = RingBuffer(size_max=10, default_value=0.0, dtype=float)
In [4]: ring
Out[4]:
<RingBuffer
all: array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
partial: array([], dtype=float64)
size/size_max: 0 / 10
>
In [5]: ring.append(1.2)
In [6]: ring
Out[6]:
<RingBuffer
all: array([ 1.2 , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0.])
partial: array([ 1.2])
size/size_max: 1 / 10
>
In [7]: ring.append(2.1)
In [8]: ring
Out[8]:
<RingBuffer
all: array([ 2.1 , 1.2 , 0. , 0. , 0. , 0. , 0. , 0. , 0., 0.])
partial: array([ 2.1 , 1.2])
size/size_max: 2 / 10
>
In [9]: ring.all
Out[9]: array([ 2.1, 1.2, 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ])
In [10]: ring.partial
Out[10]: array([ 2.1, 1.2])
In [11]: ring.partial[::-1]
Out[11]: array([ 1.2, 2.1])
You can help to develop this library.
You can submit issues using https://github.com/scls19fr/numpy-buffer/issues
You can clone repository to try to fix issues yourself using:
$ git clone https://github.com/scls19fr/numpy-buffer
Run all unit tests
$ nosetests -s -v
Run a given test
$ nosetests tests/test_ring.py:test_ring -s -v
$ python setup.py install
or
$ sudo pip install git+https://github.com/scls19fr/numpy-buffer
- Fork repository
- Create a branch which fix a given issue
- Submit pull requests
https://help.github.com/categories/collaborating/
see samples directory