[Numpy-discussion] numpy.array() of mixed integers and strings can truncate data
Thouis Jones
thouis.jones at curie.fr
Thu Dec 1 09:53:32 EST 2011
On Thu, Dec 1, 2011 at 15:47, Pierre Haessig <pierre.haessig at crans.org> wrote:
> Le 01/12/2011 14:52, Thouis (Ray) Jones a écrit :
>> Is this expected behavior?
>>
>>>>> np.array([-345,4,2,'ABC'])
>> array(['-34', '4', '2', 'ABC'], dtype='|S3')
>>
>>
> With my numpy 1.5.1, I got indeed a different result:
>
> In [1]: np.array([-345,4,2,'ABC'])
> Out[1]:
> array(['-345', '4', '2', 'ABC'],
> dtype='|S8')
This is closer to what I would expect.
> The type casting is a bit different, and actually may better match what
> you expect, but still a casting is required
> (i.e. you cannot have a "numpy.array() of mixed integers and strings"
> because numpy arrays only store *homogenous* sets of data)
Of course, but when converting from a non-homogenous python list, I
would expect it to do something reasonable (or at least not as bad as
turning -345 into '-34').
> Now one question remains for me : why use a numpy array to store a few
> strings, and not just a regular Python list ?
It was a small test case. The actual data is much larger.
Ray Jones
More information about the NumPy-Discussion
mailing list