我有一个txt文件:
.xsh 1:
..sxi
..kuxz
...iucdb
...khjub
..kjb
.hjub 2:
..ind
..ljnasdc
...kicd
...lijnbcd
.split 3:
..asd
我想将这个文件加载到一个numpy数组中(因为numpy处理起来很快),以便在加载时更快地开始解析。所以说,我希望它在每个分隔符上拆分文件
^{pr2}$现在我试着这样做:
import numpy as np
import os,re
path = 'C:\\temp'
filename = 'file.txt'
delim = '(^\.\w+\s\d+\:)'
delimFunc = (lambda s: re.split(delim,s))
fname = os.path.join(path,filename)
ar=np.loadtxt(fname, dtype = str, delimiter = delimFunc)
print len(ar)
在这里,它并没有按照我想要的方式拆分,而是在每一条换行符上拆分。有没有可能让纽比,熊猫或其他任何快速图书馆的行为方式,我想在这里?在
我想要结果:
[[.xsh 1:
..sxi
..kuxz
...iucdb
...khjub
..kjb]
[.hjub 2:
..ind
..ljnasdc
...kicd
...lijnbcd]
[.split 3:
..asd]]
我不得不以不同的方式解决问题,但比以前更快:
我会这样去的
ixs if ixs[0] else ixs[1:]
表达式考虑第一条记录中是否存在有效的“分隔符”,以实现您在原始问题中显示的结果类型(即,没有记录的无效记录)。在我认为
pandas
支持这种开箱即用的方式,如果您可以选择的话。在看看https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html
sep
参数:您还可以使用
.values
方法iirc将pandas数据帧转换回numpy数组(https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.values.html)
相关问题 更多 >
编程相关推荐