7. Structured arrays wrapping

Taking derivatives on structured numpy arrays is not supported by jax, so structured arrays are internally wrapped with StructuredArray.

7.1. StructuredArray

class lsqfitgp.StructuredArray(array)

JAX-friendly imitation of a numpy structured array.

It behaves like a read-only numpy structured array, with the exception that you can set a whole field/subfield.

Parameters:
arraynumpy array, StructuredArray

A structured array. An array qualifies as structured if array.dtype.names is not None.

Notes

The StructuredArray is a readonly view on the input array. When you change the content of a field of the StructuredArray, however, the reference to the original array for that field is lost.

Examples

>>> a = np.empty(3, dtype=[('f', float), ('g', float)])
>>> a = StructuredArray(a)
>>> a['f'] = np.arange(3) # this is allowed
>>> a[1] = (0.3, 0.4) # this raises an error

7.2. Functions

lsqfitgp.asarray(x, **kw)

Version of np.asarray that works with StructuredArray.

lsqfitgp.broadcast(*arrays)

Version of np.broadcast that works with StructuredArray.

lsqfitgp.broadcast_arrays(*arrays, **kw)

Version of np.broadcast_arrays that works with StructuredArray.

lsqfitgp.broadcast_to(x, shape, **kw)

Version of np.broadcast_to that works with StructuredArray.