跳过行,并在使用 Python 读取文件期间将一行保存到多个数组中



我在示例文件测试中保存了以下数据.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,忽略后两列。
  • 也跳过最后两行。
  • 打印阵列 distc

我目前编写了以下代码:

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]

相关内容

  • 没有找到相关文章

最新更新