python - Generic string comparison with numpy -
if have multiple numpy arrays of different string types, such as:
in [411]: x1.dtype out[411]: dtype('s3') in [412]: x2.dtype out[412]: dtype('<u3') in [413]: x3.dtype out[413]: dtype('>u5')
is there way can check whether all strings without having compare each individual type explicitly?
for example, do
in [415]: x1.dtype == <something> out[415]: true in [416]: x2.dtype == <something> # same above out[416]: true in [417]: x3.dtype == <something> # same above out[417]: true
comparing str
= no bueno:
in [410]: x3.dtype == str out[410]: false
one way use np.issubdtype
np.character
:
np.issubdtype(your_array.dtype, np.character)
for example:
>>> np.issubdtype('s3', np.character) true >>> np.issubdtype('<u3', np.character) true >>> np.issubdtype('>u5', np.character) true
this numpy dtype hierarchy (as image!) taken numpy documentation. it's helpful if want check common dtype classes:
as can see np.str_
, np.unicode_
both "subclass" np.character
.
wiki
Comments
Post a Comment