numpy.fromregex

numpy.fromregex(file, regexp, dtype, encoding=None)[源代码]

使用正则表达式解析从文本文件构造数组。

返回的数组始终是一个结构化数组,由文件中正则表达式的所有匹配项构造。正则表达式中的组将转换为结构化数组的字段。

参数
fileSTR或文件

要读取的文件名或文件对象。

regexpSTR或ReGEXP

用于分析文件的正则表达式。正则表达式中的组对应于数据类型中的字段。

dtype数据类型或数据类型列表

结构化数组的数据类型。

encoding可选的STR

用于解码输入文件的编码。不适用于输入流。

1.14.0 新版功能.

返回
output恩达雷

输出数组,包含 file 与之匹配的是 regexp . output 始终是结构化数组。

加薪
TypeError

什么时候? dtype 不是结构化数组的有效数据类型。

笔记

结构化数组的数据类型可以用多种形式指定,但所有形式至少指定数据类型和字段名。详情见 basics.rec .

实例

>>> f = open('test.dat', 'w')
>>> _ = f.write("1312 foo\n1534  bar\n444   qux")
>>> f.close()
>>> regexp = r"(\d+)\s+(...)"  # match [digits, whitespace, anything]
>>> output = np.fromregex('test.dat', regexp,
...                       [('num', np.int64), ('key', 'S3')])
>>> output
array([(1312, b'foo'), (1534, b'bar'), ( 444, b'qux')],
      dtype=[('num', '<i8'), ('key', 'S3')])
>>> output['num']
array([1312, 1534,  444])