Skip to main content

Alternative approach to defining and viewing NumPy's arrays

Project description

Build status Coverage Status PyPI latest version Documentation status License

Nani is a Python library that provides an alternative approach to defining and viewing NumPy’s arrays.

Upon getting started with NumPy, the rules to define numpy.dtype objects tend to quickly become confusing. Not only different syntaxes can create a same data type, but it also seems arbitrary and hence difficult to remember that sub-array data types can only be defined as tuples while structured data types exclusively require lists made of field tuples, and so on.

To address this point, Nani takes the stance of offering one—and only one—way of constructing numpy.dtype objects. Although this syntax makes the code more verbose, it also makes it easier to read and to reason about.

Nani’s approach allows type introspection which brings additional benefits in the form of dynamically generated default values and view types. Default values facilitate the definition of new array elements while view types are useful to encapsulate interactions with NumPy and to expose a different public interface to your library users instead of the one provided with numpy.ndarray.

Features

  • explicit syntax for defining numpy.dtype objects.

  • generates default values and view types.

  • allows for type introspection.

Usage

>>> import numpy
>>> import nani
>>> color_type = nani.Array(
...     element_type=nani.Number(type=numpy.uint8, default=255),
...     shape=3,
...     view=None)
>>> dtype, default, view = nani.resolve(color_type, name='Color')
>>> a = numpy.array([default] * 2, dtype=dtype)
>>> v = view(a)
>>> for color in v:
...     print(color)
[255, 255, 255]
[255, 255, 255]

The color_type above defines an array of 3 numpy.uint8 elements having each a default value of 255. The resulting dtype and default objects are used to initialize a new NumPy array of 10 color elements, while the view type is used to wrap that array into a standard collection interface.

See the Tutorial section from the documentation for more detailed examples and explanations on how to use Nani.

Documentation

Read the documentation online at nani.readthedocs.io or check its source in the doc directory.

Author

Christopher Crouzet <christophercrouzet.com>

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

nani-0.2.0.tar.gz (28.2 kB view details)

Uploaded Source

Built Distribution

nani-0.2.0-py2.py3-none-any.whl (13.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file nani-0.2.0.tar.gz.

File metadata

  • Download URL: nani-0.2.0.tar.gz
  • Upload date:
  • Size: 28.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for nani-0.2.0.tar.gz
Algorithm Hash digest
SHA256 301d5c52c48c95fc82999560925a6f5fd2e74e91dab4b8b4d28e1c71aef0b9b9
MD5 dcdadab784fd0289aa0dc949293a12a1
BLAKE2b-256 552cf0dcf343c4c52b9ac6e7356d6c0e3af80bd323ae516ddd415ae27f342d9b

See more details on using hashes here.

File details

Details for the file nani-0.2.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for nani-0.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a21b9bed0d538ab33cbcd53bfdf1f483ce8394c1b18eda6b4101bc9418b4fc48
MD5 7dbccd3269912eec78b6efc00f588eaa
BLAKE2b-256 e2b007986113daee52c877ce33a5a576df593ad0b056d1bdce70a1786825a613

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