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

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

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

You Might Also Like