Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.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:从自定义文件格式快速创建ndarray_Python_Parsing_Numpy_Multidimensional Array - Fatal编程技术网

Python:从自定义文件格式快速创建ndarray

Python:从自定义文件格式快速创建ndarray,python,parsing,numpy,multidimensional-array,Python,Parsing,Numpy,Multidimensional Array,我有一个像这样的文件格式 0.1 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.2 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 0.3 ... ... 我想将此文件解析为如下所示的数组- 0.02 0.11 ... 0.03 0.12 ... 0.04 0.13 ... 0.05 0.14 ... 0.06 0.15 ... 0.07 0.16 ... ... 在这里,我已经确定genfromtxt

我有一个像这样的文件格式

0.1
0.02 0.03 0.04
0.05 0.06 0.07
0.08 0.09 0.10
0.2
0.11 0.12 0.13
0.14 0.15 0.16
0.17 0.18 0.19
0.3 ... ...
我想将此文件解析为如下所示的数组-

0.02 0.11 ...
0.03 0.12 ...
0.04 0.13 ...
0.05 0.14 ...
0.06 0.15 ...
0.07 0.16 ...
...

在这里,我已经确定genfromtxt、loadtxt不能工作,因为中间行只有一列。我不知道还会有更多的数据块,我也不知道在文件结束前会有多少数据块。我现在正在将单个条目手动输入数组。有没有更快的方法?我希望解析大型文件和其中的许多文件。

您可以一次读取一行文件,然后按空格分割,然后迭代该文件并按句点字符分割。然后像这样格式化整数部分和小数部分

"{0:d}.{0:>2d}".format(characteristic, mantissa)

您可以一次读取整个文件内容,在空格和换行符处拆分字符串,并按要求的顺序连接各个部分:每十个元素在一行中,然后是新行,依此类推:

import re

with open("data.txt") as f:
    content = re.split(' |\n', f.read())
    print "\n".join([" ".join(content[i::10]) for i in range(1, 10)])
文件data.txt的内容:

输出:

0.02 0.11 1
0.03 0.12 2
0.04 0.13 3
0.05 0.14 4
0.06 0.15 5
0.07 0.16 6
0.08 0.17 7
0.09 0.18 8
0.10 0.19 9

所以区块始终是3x3?不,区块并不总是3x3,但它们的大小是已知的,所以您的解决方案可以工作!谢谢
0.02 0.11 1
0.03 0.12 2
0.04 0.13 3
0.05 0.14 4
0.06 0.15 5
0.07 0.16 6
0.08 0.17 7
0.09 0.18 8
0.10 0.19 9