numpy 如何根据定界符参数将原始数据拆分读入不同的数组

r3i60tvu  于 2022-12-13  发布在  其他
关注(0)|答案(1)|浏览(86)

我有一个原始数据,形式如下

#######
#######
#col1 #col2 #col3
1       10    100
2       11    150
3       14    155
#######
#######
#######
#######
#col1 #col2 #col3
1       14    100
2       17    180
3       14    155
#######
#######
#######
#######
#col1 #col2 #col3
1       19    156
2       27    130
3       24    152
#######
#######

我想把这个数据加载到一个NumPy数组中。当我用numpy.loadtxt加载这个数组时,整个数据都被加载到一个数组中。有没有更简单的方法可以根据#######行把这个数据拆分成不同的块?

vtwuwzda

vtwuwzda1#

一个简单的方法是读取文件,在分隔符处拆分获得的字符串,清除剩余的不必要的行,并在这些字符串列表上使用numpy.loadtext。(正如documentation中所解释的,在numpy.loadtext中作为参数的字符串列表被视为行)

import numpy as np
from typing import List

filename: str = "data_file.txt" # Put your filename here instead

with open(filename, "r", encoding="utf-8") as file:
    content: str = file.read()

datas: List[str] = content.split(4 * "#######\n")
arrays: List[np.ndarray] = []
for data in datas:
    data_list: List[str] = data.replace("#######\n", "").split("\n")
    arrays.append(np.loadtxt(data_list))

相关问题