[Numpy-discussion] Thoughts on getting "something" in the Python core
oliphant at ee.byu.edu
Fri Apr 1 12:10:00 CST 2005
>>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
Notice that regardless of what I said about what goes into standard
Python, something like Numeric3 will always exist for use by scientific
users. It may just be a useful add on package like Numeric has always
been. There is no way I'm going to abandon use of a more capable Numeric.
>Right. I believe that, among all libraries related with numeric array,
>eventually only one library in the Python core will survive no matter
>how much advanced functions are available, because of the strong
>compatibility with other packages.
I don't think this is true. Things will survive based on utility.
What we are trying to do with the Python core is define a standard
protocol that is flexible enough to handle anybody's concept of an
advanced array (in particular the advanced array that will be in
>Totally agree. I doubt that Guido will accept a large and complex
>library into the standard Python core. I think Numeric is already too
>complex, and numarray is far more complex to be a standard lib in the
>Python core. Numeric3 must shift its focus from better Numeric to
I disagree about "shifting focus." Personally, I'm not going to work on
something like that until we have a single array package that fulfills
the needs of all Numeric and most numarray users. I'm just pointing
out that what goes in to the Python core should probably be a scaled
down object with a souped-up "protocol" so that the array object in
scipy.base can be used through the array protocol by any other package
without worrying about having scipy_core at compile time.
>For example, how many Python users care about masked arrays? How many
>Python users want the advanced type from the Python core? I think the
>advanced array type should in some extension lib, not in core array
Perhaps you do see my point of view. Not all Python users care about
an advanced array object but nearly all technical (scientific and
engineering users) will. We just need interoperability.
>If we make clear our target – becoming a standard library in the
>Python core, we may have no problem in determining what functions
>should be in the core array lib and what functions should be in
>extension libraries using the core array type.
>Today, the array type in the Python core is almost useless.
>If Numeric3 offers just much faster performance on numeric types, many
>Python users will start to use new array type in their applications.
>Once it happens, we can create a bunch of extension libraries for more
>advanced operations on the new array type.
The "bunch of extension libraries" is already happening and is already
in progress. I think we've overshot the mark for the Python core,
however. No need to wait "til something happens"
>With all my heart I hope that Numeric3 gears to this direction before
>we get the tragedy to have Numeric4, Numeric5, and so on.
I'm coming to see that what is most important for the Python core is
"protocols". Then, there can be a "million" different array types that
can all share each other's memory without hassle and much overhead.
I'm still personally interested in a better Numeric, however, and so
won't be abandoning the concept of Numeric3 (notice I now call it
scipy.base --- not a change of focus just a change of name). I just
wanted to encourage some discussion on the array protocol.
More information about the Numpy-discussion