Python 如何使用numpy加载数据并存储文件中的数据
我有如下类似的文件:Python 如何使用numpy加载数据并存储文件中的数据,python,parsing,numpy,Python,Parsing,Numpy,我有如下类似的文件: 2 qid:1 1:0.32 2:0.50 3:0.78 4:0.02 10:0.90 5 qid:2 2:0.22 5:0.34 6:0.87 10:0.56 12:0.32 19:0.24 20:0.55 ... 他的结构是这样的: 输出={} rel=2 qid=1 features={}#功能列表“1:0.32 2:0.50 3:0.78 4:0.02 10:0.90”输出。追加([rel,qid,features]) ... 如何编写python代码来加载数据,
2 qid:1 1:0.32 2:0.50 3:0.78 4:0.02 10:0.90
5 qid:2 2:0.22 5:0.34 6:0.87 10:0.56 12:0.32 19:0.24 20:0.55
...
他的结构是这样的:
输出={}
rel=2
qid=1
features={}#功能列表“1:0.32 2:0.50 3:0.78 4:0.02 10:0.90”输出。追加([rel,qid,features])
...
如何编写python代码来加载数据,感谢阅读并使用类似的内容(数据位于文件“fname”中):
以下内容应能很好地工作,并使您的数据保持方便的格式:
regexp = r"(\d+)\s+qid:(\d+)\s+(.+)"
data = np.fromregex(file_name, regexp,
dtype=[('rel', int), ('qid', int), ('features', object)])
从这里,您可以通过调用以下命令来选择rel、qid或features:
>>> data['rel']
array([2, 5])
>>> data['qid']
array([1, 2])
>>> data['features']
array(['1:0.32 2:0.50 3:0.78 4:0.02 10:0.90',
'2:0.22 5:0.34 6:0.87 10:0.56 12:0.32 19:0.24 20:0.55'], dtype=object)
看起来您的输入文件是svmlight格式的。如果这是真的,那么scikit learn中包含了一个解析器,它可能很方便使用——请参阅以下网址的源代码:
如果您描述所需的输出数据结构,将非常有用。
>>> data['rel']
array([2, 5])
>>> data['qid']
array([1, 2])
>>> data['features']
array(['1:0.32 2:0.50 3:0.78 4:0.02 10:0.90',
'2:0.22 5:0.34 6:0.87 10:0.56 12:0.32 19:0.24 20:0.55'], dtype=object)