What's the best way to check whether a numpy array is string or bytes on
python3?

using char?


>>> A = np.asarray([[1, 0, 0],['E', 1, 0],['E', 'E', 1]], dtype='<U1')
>>> A
array([['1', '0', '0'],
       ['E', '1', '0'],
       ['E', 'E', '1']],
      dtype='<U1')
>>> A.dtype
dtype('<U1')
>>> A.dtype.char
'U'
>>> A.dtype.char == 'U'
True
>>> A.dtype.char == 'S'
False
>>> A.astype('<S1').dtype.char == 'S'
True
>>> A.astype('<S1').dtype.char == 'U'
False
>>>

background:
I don't know why sometimes I got S and sometimes U on Python 3.4, and I
want the code to work with both

>>> A == 'E'
array([[False, False, False],
       [ True, False, False],
       [ True,  True, False]], dtype=bool)

>>> A.astype('<S1') == 'E'
False
>>> A.astype('<S1') == b'E'
array([[False, False, False],
       [ True, False, False],
       [ True,  True, False]], dtype=bool)


Josef
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to