Like a numpy-recarray but dynamically appendable.
Project description
A dynamic, appandable version of Numpy’s recarray. The goal is to have a recarray-like-object which can be appended to in a transparent and efficient way.
install
pip install dynamicsizerecarray
basic use
Initialize an empty DynamicSizeRecarray with a dtype.
import dynamicsizerecarray
dra = dynamicsizerecarray.DynamicSizeRecarray(
dtype=[("hour", "u1"), ("minute", "u1"), ("temperature", "f8")]
)
len(dra)
0
Or initialize the DynamicSizeRecarray with an already existing recarray.
import numpy
rec = numpy.core.records.recarray(
shape=1,
dtype=[("hour", "u1"), ("minute", "u1"), ("temperature", "f8")],
)
rec["hour"][0] = 2
rec["minute"][0] = 13
rec["temperature"][0] = 20.123
dra = dynamicsizerecarray.DynamicSizeRecarray(recarray=rec)
len(dra)
1
After initializing, the DynamicSizeRecarray can be appended to dynamically. You can append a record, i.e. a dict.
dra.append_record({"hour": 3, "minute": 53, "temperature": 22.434})
len(dra)
2
Or you can append another recarray.
rec = numpy.core.records.recarray(
shape=1,
dtype=[("hour", "u1"), ("minute", "u1"), ("temperature", "f8")],
)
rec["hour"][0] = 13
rec["minute"][0] = 41
rec["temperature"][0] = 18.623
dra.append_recarray(rec)
len(dra)
3
When the dynamic appending is done, the DynamicSizeRecarray can be exported to a classic, and static recarray.
final = dra.to_recarray()
Further the DynamicSizeRecarray provides the properties shape and dtype, and also implements __gettitem__, __setitem__.
dra.shape # shape
(3, )
dra[0] # __gettitem__
(2, 13, 20.123)
dra[1] = (7, 25, 21.45) # __setitem__
len(dra) # __len__
3
dra.dtype # exposes the internal recarray's dtype
dtype((numpy.record, [('hour', 'u1'), ('minute', 'u1'), ('temperature', '<f8')]))
wording
record is a dict with keys (and values) matching the dtype of the DynamicSizeRecarray. (Wording is adopted from pandas).
records is just a list of record s (Also adopted from pandas).
recarray is short for np.core.records.recarray.
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
Built Distribution
Hashes for dynamicsizerecarray-0.0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 930455170a94560e462be5f1c8b9a31cacc0ede2b0a56fd52c6455c303ea2b6f |
|
MD5 | f376ef5ae68891ee6703b441c1b64acc |
|
BLAKE2b-256 | 1b836ead05ae6f5acdf8c9a55cc97d9e6b82d0244e779bc85f35f7a58c068c1f |
Hashes for dynamicsizerecarray-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c35ae9a24e7c84977082a65baa9d2f22ffe70aa1e1164af727b3caca13db863b |
|
MD5 | e01cf272c60d6ece3cc492695c6f1105 |
|
BLAKE2b-256 | dae72d0fbe31a8f542981f049e3ffdfb86ad49f35bd533833dda545910f557e7 |