Skip to main content

Like a numpy-recarray but dynamically appendable.

Project description

TestStatus PyPiStatus BlackStyle

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: 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dynamicsizerecarray-0.0.1.tar.gz (4.6 kB view hashes)

Uploaded Source

Built Distribution

dynamicsizerecarray-0.0.1-py3-none-any.whl (4.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page