How to read a numerical data/file in Python with numpy?

NumPy to load numerical text file

NumPy to import numerical data

Often you may need to read a file containing numerical data in Python for. One of the options is to import the file/data in Python is use Python’s NumPy library. There are number of advantages to use NumPy. NumPy is designed to deal with numerical data, it is fast and it has loads of built-in functions that lets us import and analyze the data easily. Let us see how to use NumPy to numerical
data file.

Load NumPy library

# import numpy library as np
import numpy as np

# numerical data file
filename="my_numerical_data.csv"

Load a csv file with NumPy

NumpPy’s loadtxt function lets us read numerical data file in text format in to Python. To load a CSV (Comma Separated Values) file, we specify delimitter to “,”.

# load the data with NumPy function loadtxt
data = np.loadtxt(filename, delimiter=",")

Load a csv file with NumPy and skip a row

NumPy’s loadtxt function offers numerous options to load the data. For example,
if the data has header information in the first line of the file and if we want to ignore that we can use “skiprows” option

# use skiprows to skip rows
data = np.loadtxt(filename, delimiter=",", skiprows=1)

By specifying “skiprows=1” while loading the numerical data, we skipping just the first line of the file. By specifying different “skiprows”, we can skip multiple lines of a file.

Load a csv file with NumPy, skip a row and select columns

If we want to load/read jusa few columns of of the data file, we can use “usecols” option and specify the column indices that we want to load. For example, to load 1st, 2nd, and 3rd column we use

# usecols select columns
data = np.loadtxt(filename, delimiter=",", skiprows=1, 
                  usecols=[0,1,2])

Importing data from tsv file

If you have tab-delimited file, we can specify the delimter to “\t” and load the data using np.loadtxt.

# Load data from tsv file: data
data = np.loadtxt(tsv_file, delimiter="\t", skiprows=1, 
                  usecols=[0,1,2])