Skip to main content

A fast, typed, resizable, Cython array.

Project description

cyarray: a typed, re-sizable Cython array

Travis Status Appveyor Status Documentation Status

The cyarray package provides a fast, typed, re-sizable, Cython array.

It currently provides the following arrays: IntArray, UIntArray, LongArray, FloatArray, DoubleArray.

All arrays provide for the following operations:

  • access by indexing.

  • access through get/set function.

  • resizing the array.

  • appending values at the end of the array.

  • reserving space for future appends.

  • access to internal data through a numpy array.

If you are writing Cython code this is a convenient array to use as it exposes the raw underlying pointer to the data. For example if you use a FloatArray and access its data attribute it will be a float*.

Each array also provides an interface to its data through a numpy array. This is done through the get_npy_array function. The returned numpy array can be used just like any other numpy array but for the following restrictions:

  • the array may not be resized.

  • references of this array should not be kept.

  • slices of this array may not be made.

The numpy array may however be copied and used in any manner.

Installation

cyarray can be installed using pip:

$ pip install cyarray

The package requires Cython, numpy, and mako to be installed and also requires a suitably configured C/C++ compiler.

Usage

In Python one may import and use the package as:

from cyarray.api import IntArray
a = IntArray(10)

Here a is an array of 10 integers.

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

cyarray-1.1.tar.gz (27.5 kB view hashes)

Uploaded Source

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