【发布时间】:2015-06-12 08:19:40
【问题描述】:
我得到了一个numpy数组,例如:
myArray = np.array(['a','bc'])
是否可以使用dtype来判断其元素是否为字符串?
我能做的唯一方法是检查myArray.dtype == 'S2',但我的问题是我事先不知道我的元素中有多少个字符。
我可以使用myArray.dtype == 'str' 之类的东西吗?
【问题讨论】:
我得到了一个numpy数组,例如:
myArray = np.array(['a','bc'])
是否可以使用dtype来判断其元素是否为字符串?
我能做的唯一方法是检查myArray.dtype == 'S2',但我的问题是我事先不知道我的元素中有多少个字符。
我可以使用myArray.dtype == 'str' 之类的东西吗?
【问题讨论】:
您可以使用issubdtype 进行检查:
>>> np.issubdtype(myArray.dtype, str)
True
该函数检查给定 dtype 是否在 NumPy 的 type hierarchy 中排序在另一个之下。
或者,您可以直接检查 dtype 的字符代码。字符串类型有代码'S':
>>> myArray.dtype.char
'S'
【讨论】:
np.issubdtype,我通常用issubclass(myArray.dtype.type, str) 来检查这些东西。