Skip to main content

Like a numpy-recarray but dynamically appendable.

Project description

TestStatus PyPiStatus BlackStyle BlackPackStyle MITLicenseBadge

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


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.3.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

dynamicsizerecarray-0.0.3-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

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

Hashes for dynamicsizerecarray-0.0.3.tar.gz
Algorithm Hash digest
SHA256 930455170a94560e462be5f1c8b9a31cacc0ede2b0a56fd52c6455c303ea2b6f
MD5 f376ef5ae68891ee6703b441c1b64acc
BLAKE2b-256 1b836ead05ae6f5acdf8c9a55cc97d9e6b82d0244e779bc85f35f7a58c068c1f

See more details on using hashes here.

File details

Details for the file dynamicsizerecarray-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for dynamicsizerecarray-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c35ae9a24e7c84977082a65baa9d2f22ffe70aa1e1164af727b3caca13db863b
MD5 e01cf272c60d6ece3cc492695c6f1105
BLAKE2b-256 dae72d0fbe31a8f542981f049e3ffdfb86ad49f35bd533833dda545910f557e7

See more details on using hashes here.

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