[Numpy-discussion] String manipulation

David Goldsmith d_l_goldsmith at yahoo.com
Tue Jul 21 13:16:52 EDT 2009


Hi, Chris.  Look at this, _I'm_ answering one of _your_ questions (correctly, I hope):

--- On Tue, 7/21/09, Christopher Barker <Chris.Barker at noaa.gov> wrote:

> I don't see why:
> 
> np.array('a string', dtype='S1')
> 
> results in a length (1,) array, for instance.
> 
> Actually, I think I do -- numpy is treating the string as a
> single 
> scalar, rather than a sequence of characters, and doing its
> best to 
> convert that scaler to a length one string. However, I

Well, as for why "[it's doing] its best to convert that scalar to a length one string," that's because you used dtype='S1' instead of dtype='S8':

>>> np.array('a string', dtype='S1')
array('a',
      dtype='|S1')
>>> np.array('a string', dtype='S8')
array('a string',
      dtype='|S8')

but as for shape, I can't reproduce your result at all:

>>> np.array('a string', dtype='S1').shape
()
>>> np.array('a string', dtype='S8').shape
()

and as for size, yes, in both cases it is treating the entire string as a single "element":

>>> np.array('a string', dtype='S1').size
1
>>> np.array('a string', dtype='S8').size
1

> don't know if 
> there is a compelling reason why it should do that -- in
> other contexts, 
> Python generally treats strings as a sequence of
> characters.

I see your point (global consistency) but personally, IMO, if you want that kind of string behavior, work in the Python namesapace: I like (though I've yet to actually use it) options (if you want to process a single string array element in the "standard" way, extract it from the array first w/ an index - it's only a few more characters of code).

:-)

DG

> -Chris
> 
> 
> 
> 
> 
> 
> 
> 
> 
> -- 
> Christopher Barker, Ph.D.
> Oceanographer
> 
> Emergency Response Division
> NOAA/NOS/OR&R           
> (206) 526-6959   voice
> 7600 Sand Point Way NE   (206)
> 526-6329   fax
> Seattle, WA  98115   
>    (206) 526-6317   main
> reception
> 
> Chris.Barker at noaa.gov
> _______________________________________________
> 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