[Numpy-discussion] Optionally using Numeric in another compiled extension package.
falted at openlc.org
Wed Jan 15 12:25:27 CST 2003
A Dimecres 15 Gener 2003 21:16, Todd Miller va escriure:
> My idea to couple these was "not good". They're not compatible at that
> level anyway.
> Since numarray and Numeric are only source level compatible, C-code can
> be compiled to work with one or the other, but not both at the same
> time. It probably makes more sense to just implement for Numeric. If
> you do want to implement for both, treat them as seperate cases with
> seperate recognizer functions and element access code.
> But... It's not clear to me that knowing an object is an array will
> help since getting data elements still has to be done fast, and that
> seems hard to do without knowing the arrayobject struct. Keep in mind
> that Numeric and numarray arrays are strided and possibly discontiguous,
> so there's more to data access than owning a base pointer, as would be
> the case in C.
I think you can use the numarray High-Level C API to overcome these
dificulties. For example, by using the calls:
PyArrayObject* NA InputArray(PyObject *numarray, NumarrayType t, int requires)
PyArrayObject* NA OutputArray(PyObject *numarray, NumarrayType t, int
PyArrayObject* NA IoArray(PyObject *numarray, NumarrayType t, int requires)
as documented in the User's Guide, you can get well-behaved (i.e.
contiguous and well-aligned) C arrays (copying them, if needed) from both
numarray or Numeric arrays if you pass C_ARRAY as the value for requires
In fact, I'm using the InputArray in PyTables to manage both numarray and
Numeric arrays with good results.
More information about the Numpy-discussion