making a character array from numeric array
Michael Sorich wrote:
Hi,
I am trying to convert an int or float ndarray into a string ndarray. Using astype this is possible, but only if you explicity set the number of characters (see eg below). It would be nice if just setting type='S' (or N.str_) would automatically make an a character array of sufficient size to hold the string representation. Is there a way to do this?
Not with astype directly because to do what you want requires doing the conversion into variable-length strings and then finding the largest. But, you could do it this way: def convert_to_string(arr): fl = arr.flat l = [str(x) for x in fl] return array(l).reshape(arr.shape) Or as a one-liner array([str(x) for x in arr.flat], dtype='S').reshape(arr.shape) (The dtype='S' is technically unnecessary but should be a bit faster) -Travis
participants (2)
-
Michael Sorich
-
Travis Oliphant