Numpy:检查数组的字符串数据类型

Posted

技术标签:

【中文标题】Numpy:检查数组的字符串数据类型【英文标题】:Numpy: Check array for string data type 【发布时间】:2012-06-03 03:43:19 【问题描述】:

如何确定 Numpy 数组是否包含字符串?数组a in

a = np.array('hi world')

具有数据类型dtype('|S8'),其中8 指的是字符串中的字符数。

我看不出正则表达式(例如re.match('\|S\d+', a.dtype))在这里如何工作,因为数据类型不仅仅是'|S8'

【问题讨论】:

【参考方案1】:
a.dtype.char == 'S'

a.dtype.type is np.string_

见NumPy docs, Data type objects, Attributes。

【讨论】:

我注意到还有 a.dtype.kind == 'S'。甜! 请注意:似乎这需要在 Python 3.x 中为 a.dtype.type is np.str_ 对于 Python 2.x 3.x,您可以针对 a.dtype.kind in 'U', 'S' 进行测试以捕获字符串和 unicode。 如果将字符串放入带有字符“O”的对象数组中会发生什么? a.dtype.type is np.string_ or a.dtype.type is np.str_ 是另一种选择

以上是关于Numpy:检查数组的字符串数据类型的主要内容,如果未能解决你的问题,请参考以下文章

在一个 NumPy 数组中存储不同的数据类型?

NumPy 基础

NumPy 基础

NumPy 基础

numpy创建字符串类型矩阵

python数据分析基础之Numpy库详解