Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用numpy加载数据并存储文件中的数据_Python_Parsing_Numpy - Fatal编程技术网

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)