[Numpy-discussion] np.zeros(2, 'S') returns empty strings.

josef.pktd at gmail.com josef.pktd at gmail.com
Sat Jan 14 19:21:55 EST 2012


On Sat, Jan 14, 2012 at 5:25 PM, Benjamin Root <ben.root at ou.edu> wrote:
> On Sat, Jan 14, 2012 at 4:16 PM, Benjamin Root <ben.root at ou.edu> wrote:
>>
>> On Sat, Jan 14, 2012 at 4:12 PM, Charles R Harris
>> <charlesr.harris at gmail.com> wrote:
>>>
>>> This sort of makes sense, but is it the 'correct' behavior?
>>>
>>> In [20]: zeros(2, 'S')
>>> Out[20]:
>>> array(['', ''],
>>>       dtype='|S1')
>>>
>>> It might be more consistent to return '0' instead, as in
>>>
>>> In [3]: zeros(2, int).astype('S')
>>> Out[3]:
>>> array(['0', '0'],
>>>       dtype='|S24')



I would be surprised if zeros is not an empty string, since an empty
string is the "zero" for string addition.
multiplication for strings doesn't exist, so ones can be anything even
literally '1'

>>> a = np.zeros(5,'S4')
>>> a[:] = 'b'
>>> reduce(lambda x,y: x+y, a)
'bbbbb'


>>> a = np.zeros(1,'S100')
>>> for i in range(5): a[:] = a.item() + 'a'
...
>>> a
array(['aaaaa'],
      dtype='|S100')


just as a logical argument, I have no idea what's practical since last
time I tried to use numpy strings, I didn't find string addition and
went back to double and triple list comprehension.

Josef

>>>
>>> Chuck
>>>
>>
>> Whatever it should be, numpy is currently inconsistent:
>>
>> >>> np.empty(2, 'S')
>> array(['0', '\xd4'],
>>       dtype='|S1')
>> >>> np.zeros(2, 'S')
>>
>> array(['', ''],
>>       dtype='|S1')
>> >>> np.ones(2, 'S')
>> array(['1', '1'],
>>       dtype='|S1')
>>
>> I would expect '0''s for the call to zeros() and empty strings for the
>> call to empty().
>>
>> Ben Root
>>
>
> On the other hand, it is fairly standard to assume that the values in the
> array returned by empty() to be random, uninitialized junk.  So, maybe
> empty()'s current behavior is ok, but certainly zeros()'s and ones()'s
> behaviors need to be looked at.
>
> Ben Root
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>



More information about the NumPy-Discussion mailing list