在两个特定行之间使用np.loadtxt(Python 2.7)

时间:2017-02-27 15:37:05

标签: python python-2.7 numpy data-extraction

我知道np.loadtxt允许您从文本文件中的列中快速提取数据,我知道您可以使用skiprows跳过前N行。您是否可以指定 end 行号,以便np.loadtxt仅提取文本文件中两个已知行号之间的文本?

在以下示例中,您可以指定:

(dat1,dat2) = np.loadtxt(file, skiprows = 1, usecols = (0,1), unpack=True)

但我得到一个错误,说" ValueError:无法将字符串转换为float:Data1"

实施例: 1 Data1 Data2 Data3 2 1 3 5 3 7 1 6 [...] 48 8 9 2 49 2 7 6 50 Data1 Data2 Data3 51 5 6 1 52 9 12 3 53 1 0 2

1 个答案:

答案 0 :(得分:1)

np.genfromtxt

skip_header : int, optional
    The number of lines to skip at the beginning of the file.
skip_footer : int, optional
    The number of lines to skip at the end of the file.
max_rows : int,  optional
    The maximum number of rows to read. Must not be used with skip_footer
    at the same time.  If given, the value must be at least 1. Default is
    to read the entire file.

可以很好地控制读取哪些行。

另一种选择是自己打开文件,例如

with open('myfile', 'rb') as f:
     <skip>
     np.genfromtxt(f, ...)
     etc

并将其传递给genfromtxt。你甚至可以逐行喂它。 genfromtxt(和loadtxt)对提供它的任何内容感到满意 - 文件,行列表,行生成器等等。