[Numpy-discussion] String manipulation

David Goldsmith d_l_goldsmith@yahoo....
Tue Jul 21 12:16:52 CDT 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@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@noaa.gov
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>

```