Numpy. Loadtxt Skipping Multiple Rows

Numpy. Loadtxt Skipping Multiple Rows

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 anywhere.

4

2 Answers

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)
3

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Elena Rostova
Author

Elena Rostova

Elena Rostova holds a Master's degree in Public Health Journalism. She covers groundbreaking medical research, holistic wellness trends, mental health awareness, and nutritional science.