# [Numpy-discussion] convert to string - astype(str)

josef.pktd@gmai... josef.pktd@gmai...
Sun Jun 10 06:58:38 CDT 2012

```On Sun, Jun 10, 2012 at 2:17 AM, Travis Oliphant <travis@continuum.io> wrote:
>
> On Jun 9, 2012, at 4:45 PM, josef.pktd@gmail.com wrote:
>
>> Is there a way to convert an array to string elements in numpy,
>> without knowing the string length?
>
> Not really.   In the next release of NumPy you should be able to do.
>
> result = array(arr2, str)
>
> and it will determine the length of the string for you.
>
> For now, I would compute the max length via
>
> int(math.ceil(math.log10(np.max(arr2))))

Thanks Travis,

It's good to know when I can stop looking.

Josef

>
>
> -Travis
>
>
>
>>
>>
>>>>> arr2 = np.arange(8, 13)
>>
>> array(['8', '9', '1', '1', '1'],
>>      dtype='|S1')
>>
>>>>> arr2.astype('S2')
>> array(['8', '9', '10', '11', '12'],
>>      dtype='|S2')
>>
>>>>> map(str, arr2)
>> ['8', '9', '10', '11', '12']
>>
>>
>>>>> arr3 = np.round(np.random.rand(5), 2)
>>>>> arr3
>> array([ 0.51,  0.86,  0.15,  0.68,  0.59])
>>
>> array(['0', '0', '0', '0', '0'],
>>      dtype='|S1')
>>
>>>>> arr3.astype('S4')
>> array(['0.51', '0.86', '0.15', '0.68', '0.59'],
>>      dtype='|S4')
>>
>>>>> map(str, arr3)
>> ['0.51', '0.86', '0.15', '0.68', '0.59']
>>
>>>>> np.__version__
>> '1.5.1'
>>
>> (from an issue in statsmodels)
>>
>> Thanks,
>>
>> Josef
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion@scipy.org
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
```