[Numpy-discussion] Conversion numarray/Numeric objects
Todd Miller
jmiller at stsci.edu
Thu Sep 19 09:49:02 EDT 2002
Aureli Soria Frisch wrote:
> Hi,
>
>
> I have developed till now all my numerical stuff using Numeric objects.
>
>
> I want to use some modules using numarray. I have tested some
> conversion functions on Python, e.g.
>
>
> numarray.array(Numeric_object.tolist())
>
Much faster, but less general, is:
numarray.fromstring(Numeric_object.tostring(), type=XXXX)
>
> but it seems to me a bit slow (specially for large arrays as images).
> Is there any more ways of doing this conversion?
>
> Should I write my own conversion in C?
>
It depends on how soon you need it to be fast. numarray
fromlist/tolist should be implemented in C for the next release, which
should occur within a couple months, perhaps sooner. If you want to
write a C extension for numarray now, the best way to do it is to use
the Numeric compatability layer, which essentially uses a subset of
the Numeric C-API, and is not likely to change.
> Which advices could you give me in order to make an smoother transition?
>
>
> Furthermore I found the web site about numarray/Numeric
> incompatibilities very interesting. However I did not understand quite
> well the paragraph:
>
I think that webpage is out of date.
>
> since interactively typing a.shape() or a.shape((8,8)) raise an
> exception (Tuple object not callable). Am I misunderstanding something?
>
Actually, for python 2.2 and up, numarray has all of those attributes
in a Numeric compatible, Python properties based form. So ".shape"
get/sets the shape in numarray, just as in Numeric:
>>> import numarray
>>> a = numarray.arange(10)
>>> a.shape
(10,)
>>> a.shape = (2,5)
>>> a.shape
(2,5)
Because of this, the expression a.shape() that you mentioned tries to
"call" the shape tuple returned by .shape, resulting in an exception.
Todd
--
Todd Miller jmiller at stsci.edu
STSCI / SSB
More information about the NumPy-Discussion
mailing list