[Numpy-discussion] Thoughts on getting "something" in the Python core
Colin J. Williams
cjw at sympatico.ca
Fri Apr 1 06:07:38 CST 2005
Travis Oliphant wrote:
> To all interested in the future of arrays...
> I'm still very committed to Numeric3 as I want to bring the numarray
> and Numeric people together behind a single array object for
> scientific computing.
> But, I've been thinking about the array protocol and thinking that it
> would be a good thing if this became universal. One of the ways to
> make it universal is by having something that follows it in the Python
> So, what if we proposed for the Python core not something like
> Numeric3 (which would still exist in scipy.base and be everybody's
> favorite array :-) ), but a very minimal array object (scaled back
> even from Numeric) that followed the array protocol and had some C-API
> associated with it.
I thought that your original Numeric3 proposal was in this direction - a
simple multidimensional array class/type which could
eventually replace Python's array module. In addition, and separately,
there were to be a collection of ufuncs.
Later, discussion seemed to drift from the basic Numeric3 towards SciPy.
> This minimal array object would support 5 basic types ('bool',
> 'integer', 'float', 'complex', 'Object'). (Maybe a void type could
> be defined and a void "scalar" introduced (which would be the bytes
> object)). These types correspond to scalars already available in
> Python and so the whole 0-dim array Python scalar arguments could be
Could this be subclassed so that provision could be made for Int8 (or
How would an array of records be handled?
> Math could be done without ufuncs initially (people really needing
> speed would use scipy.base anyway). But, more people in the Python
> community would be able to use arrays and get used to them. And we
> would have a reference array_protocol object so that extension writers
> could write to it.
It would be good if the user could write his/her ufunc in Python.
> I would not try a project like this until after scipy_core is out, but
> it's an interesting thing to think about. I mainly wanted feedback on
> the basic concept.
The concept looks good. Regarding timing, it seems better to build the
foundation before building the house.
> An alternative would be to "add" multidimensionality to the array
> object already part of Python, fix it's reallocating with an exposed
> buffer problem, and add the array protocol.
More information about the Numpy-discussion