[Numpy-discussion] Thoughts on getting "something" in the Python core

Good idea, for many applications such an extension would be 'good
enough'.
1) python code using such arrays should be 100% compatible with
numarray/numeric/scipy. Should be possible if a sub-set of
numeric/numarray/scipy is used.
2) Extensions written in C should handle such arrays transparently
(without unnecessary copying). Should also be possible given a
compatible data layout.
Peter
> 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
> core.
>>> 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.
>>> 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
> ignored.
>> 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.
>>> 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.
>>> 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.