我在示例文件测试中保存了以下数据.dat:
n x y z c i1 i2
------------------------------------
1 1.2 3.4 5.6 1.0 111.1 222.2
2 7.8 9.0 1.2 2.0 333.3 444.4
3 3.4 5.6 7.8 1.0 555.5 666.6
------------------------------------
I do not need the last line.
我正在尝试执行以下步骤:
- 打开文件并阅读。
- 跳过前两行。 将前 4 列另存为
- 数组 dist,将第五列另存为另一个数组 c,忽略后两列。
- 也跳过最后两行。
- 打印阵列 dist 和 c。
我目前编写了以下代码:
with open('test.dat', 'r') as f:
dump = f.readline().strip()
dump = f.readline().strip()
array = [ [float(x) for x in line.split()] for line in f]
f.closed
请告诉我如何使用 Python 和 ndarray 执行此操作(因为我想在之后对数据进行一些数值运算。谢谢!
要将整个文件读入一个数组:
out = np.genfromtxt('test.dat', skip_header=2, skip_footer=1, usecols=range(5))
要将其拆分为两个数组:
dist, c = np.split(out, [4], 1)
或者更简单:
dist = out[:, :4]
c = out[:, 4]