numpy.fromregex#
- numpy.fromregex(file, regexp, dtype, encoding=None)[源]#
使用正则表达式解析,从文本文件构造数组。
返回的数组始终是结构化数组,由文件中所有与正则表达式匹配的内容构成。正则表达式中的组将转换为结构化数组的字段。
- 参数:
- file文件对象、字符串或 pathlib.Path
要读取的文件名或文件对象。
1.22.0 版中更改:现在支持
os.PathLike
实现。- regexp字符串或正则表达式对象
用于解析文件的正则表达式。正则表达式中的组对应于 dtype 中的字段。
- dtype数据类型或数据类型列表
结构化数组的数据类型;必须是结构化数据类型。
- encoding字符串,可选
用于解码输入文件的编码。不适用于输入流。
- 返回:
- outputndarray
输出数组,包含与 regexp 匹配的 file 部分内容。output 始终是结构化数组。
- 抛出:
- TypeError
当
dtype
不是结构化数组的有效数据类型时。
另请参阅
备注
结构化数组的数据类型可以通过多种形式指定,但所有形式都至少指定数据类型和字段名称。有关详细信息,请参阅 basics.rec。
示例
>>> import numpy as np >>> from io import StringIO >>> text = StringIO("1312 foo\n1534 bar\n444 qux")
>>> regexp = r"(\d+)\s+(...)" # match [digits, whitespace, anything] >>> output = np.fromregex(text, 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])