numpy.fromregex#
- numpy.fromregex(file, regexp, dtype, encoding=None)[原始碼]#
從文字檔建構陣列,使用正規表示式剖析。
傳回的陣列永遠是結構化陣列,並且從檔案中正規表示式的所有匹配項建構而來。正規表示式中的群組會轉換為結構化陣列的欄位。
- 參數:
- file檔案、字串或 pathlib.Path
要讀取的檔案名稱或檔案物件。
在版本 1.22.0 中變更:現在接受
os.PathLike
實作。- regexp字串或正規表示式
用於剖析檔案的正規表示式。正規表示式中的群組對應於 dtype 中的欄位。
- dtypedtype 或 dtype 列表
結構化陣列的 dtype;必須是結構化資料類型。
- encoding字串,可選
用於解碼 inputfile 的編碼。不適用於輸入流。
- 返回:
- outputndarray
輸出陣列,包含 file 中與 regexp 匹配的內容部分。output 永遠是結構化陣列。
- 引發:
- TypeError
當
dtype
不是結構化陣列的有效 dtype 時。
參見
註解
結構化陣列的 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])