我可以使用 dtype 来查找 numpy 数组的元素是字符串吗?

Can I use dtype to find the elements of an numpy array are strings?

我得到了一个 numpy 数组,例如:

myArray = np.array(['a','bc'])

是否可以用dtype判断其元素是否为字符串?

我唯一能做的就是检查 myArray.dtype == 'S2',但我的问题是我事先不知道我的元素中有多少个字符。

我可以使用类似 myArray.dtype == 'str' 的东西吗?

您可以使用 issubdtype 进行检查:

>>> np.issubdtype(myArray.dtype, str)
True

该函数检查在 NumPy 的 type hierarchy.

中给定的数据类型是否排在另一个数据类型的下方

或者,您可以直接检查 dtype 的字符代码。字符串类型有代码 'S':

>>> myArray.dtype.char
'S'