numpy.loadtxt Skipping multiple rows

前端 未结 2 1073
伪装坚强ぢ
伪装坚强ぢ 2021-01-07 03:27

I believe the title of this thread explains what I am looking for. I am curious to know what the syntax is for skipping multiple rows; I can\'t seem to find such information

相关标签:
2条回答
  • 2021-01-07 03:48

    Use help(np.loadtxt). You'll find the skiprows parameter will allow you to skip the first N rows:

    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.
    

    Thus, to skip N rows, you'd say

    np.loadtxt(fname, skiprows=N)
    

    If you need to filter rows other than the first N rows, use np.genfromtxt which can take an iterator which yields strings as its first argument:

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

    To skip a sequence of rows in the middle, such as rows 47--50, you could use itertools like this:

    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)
    
    0 讨论(0)
  • 2021-01-07 04:01

    If you already know the row numbers you wish to skip, then you can also use:

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

    This will skip the first five rows and print the remaining data.

    0 讨论(0)
提交回复
热议问题