[Numpy-discussion] Re: ***[Possible UCE]*** Test units on unicode types

Travis Oliphant oliphant at ee.byu.edu
Mon Feb 13 16:34:07 CST 2006


Francesc Altet wrote:

>Hi Travis,
>
>I've finished a series of tests on your recent new implementation of
>unicode types in NumPy. They discovered a couple of issues in Numpy: one
>is clearly a bug that show up in UCS2 builds (see the patch attached).
>The other, well, it is not clear to me if it is a bug or not:
>  
>

Thanks very much for these tests...  They are very, very useful.

I recently realized that the getitem material must make copies for 
misaligned data because the convert to UCS2 functions expect aligned 
data (on Solaris anyway it would cause a segfault). 

You caught an obvious mistake in that code.


>>>>ia1=numpy.array([1])
>>>>type(ia1)
>>>>        
>>>>
><type 'numpy.ndarray'>
>  
>
>>>>type(ia1.view())
>>>>        
>>>>
><type 'numpy.ndarray'>
>
>However, for 0-dimensional arrays:
>
>  
>
>>>ia0=numpy.array(1)
>>>type(ia0)
>>>      
>>>
Francesc Altet wrote:

>>>type(ia0.view())
>>>      
>>>
<type 'int32scalar'>  !!!!!!

Do you think the next this is a bug or a feature? My opinion is that it
is a bug, but maybe I'm wrong. In fact, this has a very bad effect on
unicode objects in UCS2 interpreters:



Almost all of the methods right now, return scalars instead of 
0-dimensional arrays on purpose.   This was intentional because 
0-dimensional arrays were not supposed to be handed around in Python.  
But, we were unable to completely eliminate them at this point.  So, I 
suppose, though there are a select few methods that should not 
automatically convert 0-dimensional arrays to the equivalent scalar.

.copy()  is one of them  *already changed*
.view()  is probably another *should be changed*.

If you can think of other methods that should not return scalars instead 
of 0-dimensional arrays, post it.


-Travis





More information about the Numpy-discussion mailing list