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
File details
Details for the file dynamicsizerecarray-0.0.3.tar.gz
.
File metadata
- Download URL: dynamicsizerecarray-0.0.3.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 930455170a94560e462be5f1c8b9a31cacc0ede2b0a56fd52c6455c303ea2b6f |
|
MD5 | f376ef5ae68891ee6703b441c1b64acc |
|
BLAKE2b-256 | 1b836ead05ae6f5acdf8c9a55cc97d9e6b82d0244e779bc85f35f7a58c068c1f |
File details
Details for the file dynamicsizerecarray-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: dynamicsizerecarray-0.0.3-py3-none-any.whl
- Upload date:
- Size: 5.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c35ae9a24e7c84977082a65baa9d2f22ffe70aa1e1164af727b3caca13db863b |
|
MD5 | e01cf272c60d6ece3cc492695c6f1105 |
|
BLAKE2b-256 | dae72d0fbe31a8f542981f049e3ffdfb86ad49f35bd533833dda545910f557e7 |