numpy.loadtxt跳过多行

时间:2013-11-30 15:28:16

标签: python numpy syntax

我相信这个帖子的标题解释了我在寻找什么。我很想知道跳过多行的语法是什么;我似乎无法在任何地方找到这样的信息。

2 个答案:

答案 0 :(得分:6)

使用help(np.loadtxt)。您会发现skiprows参数可以跳过第一个N行:

In [1]: import numpy as np

In [2]: help(np.loadtxt)
Help on function loadtxt in module numpy.lib.npyio:

loadtxt(fname, dtype=<type 'float'>, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0)
    ...
    skiprows : int, optional
        Skip the first `skiprows` lines; default: 0.

因此,要跳过N行,你会说

np.loadtxt(fname, skiprows=N)

如果您需要过滤除第一个 N行以外的行,请使用np.genfromtxt,它可以使用一个迭代器,它产生字符串作为其第一个参数:

with open(filename, 'r') as f:
    lines = (line for line in f if predicate(line))
    arr = np.genfromtxt(lines)

要跳过中间的一系列行,例如第47-50行,您可以使用itertools,如下所示:

import itertools as IT

with open(filename, 'r') as f:
    lines = IT.chain(IT.islice(f, 46), IT.islice(f, 4, None))
    arr = np.genfromtxt(lines)

答案 1 :(得分:2)

如果您已经知道要跳过的行号,那么您也可以使用:

import numpy as np
InputFile = './Filename.txt'
Dataset = np.loadtxt(InputFile, skiprows= 0 + 1 + 2 + 3 + 4 + 5)
print(Dataset)

这将跳过前五行并打印剩余数据。