我正在尝试从数据文件中将数据导入python numpy.array,如下所示:
VARIABLES = Y Z V W
ZONE
T="1"
0 1 2 3
4 5 6 7
8 9 10 11
ZONE
T="2"
12 13 14 15
16 17 18 19
20 21 22 23
24 25 26 27
我的预期结果是:
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]
[24 25 26 27]]]
我尝试过类似的事情
data = np.loadtxt(filename, delimiter=' ', comments=['V','T','Z'])
但是结果是我收到了一个未分成单独区域的数据数组。感谢您的帮助!
更新:
事实证明,区域必须具有不同的大小。否则就没有问题。
答案 0 :(得分:0)
遍历文件;对于从末端开始的每个线带空格;在空白处分割;检查号码;如果仅在将转换为浮点数(或mayb ints?)后才包含数字,则保持行号;对结果进行排列。
import io
import numpy as np
f = io.StringIO('''VARIABLES = Y Z V W
ZONE
T="1"
0 1 2 3
4 5 6 7
8 9 10 11
ZONE
T="2"
12 13 14 15
16 17 18 19
20 21 22 23
24 25 26 27''')
data = []
for line in f:
line = line.strip()
line = line.split()
if all(thing.isdigit() for thing in line):
data.append([float(thing) for thing in line])
print(data)
a = np.array(data)