如果您有多个不同字符串类型的numpy数组,例如:
In [411]: x1.dtype
Out[411]: dtype('S3')
In [412]: x2.dtype
Out[412]: dtype('<U3')
In [413]: x3.dtype
Out[413]: dtype('>U5')
有什么方法可以检查它们是否是所有字符串而无需明确地与每种类型进行比较?
例如,我想做
In [415]: x1.dtype == <something>
Out[415]: True
In [416]: x2.dtype == <something> # same as above
Out[416]: True
In [417]: x3.dtype == <something> # same as above
Out[417]: True
比较str
= no bueno:
In [410]: x3.dtype == str
Out[410]: False
答案 0 :(得分:3)
一种方法是将np.issubdtype
与np.character
一起使用:
np.issubdtype(your_array.dtype, np.character)
例如:
>>> np.issubdtype('S3', np.character)
True
>>> np.issubdtype('<U3', np.character)
True
>>> np.issubdtype('>U5', np.character)
True
这是从NumPy文档中获取的NumPy dtype层次结构(如图像!)。如果你想检查常见的dtype类,它会非常有用:
正如您可以看到np.str_
和np.unicode_
两个&#34;子类&#34; np.character
。