How to save a Python Numpy array to a text file?

In today’s tutorial we’ll show you two ways to export and save a Numpy array to a text or csv file which you can then further process:

  • Using the Numpy function np.savetxt
  • Using the Pandas library

Create example data

We’ll start by defining a very simple array that you can use to follow along this example.

import numpy as np
import pandas as pd
my_array = np.arange(10,19).reshape(3,3)

Note: Numpy and Pandas are installed by default with Anaconda distributions. In case you are using a different distribution or a virtual environment you have manually built, you might need to import both libraries into your development environment namespace. Here’s how to troubleshoot Pandas or Numpy install issues.

Save the array to a csv or txt file using Numpy.savetxt

We’ll first create a new file (could by csv, txt, json or others). Then we’ll loop through the array rows and write them into the file.

# open file with write access and write the array contents
with open('my_array.csv', 'w') as my_file:
        for i in my_array:
print('Array exported to file')

Read the array from the file with Numpy

We can easily go the opposite way and import the file contents into a Numpy array with the loadtxt ndArray method.

my_array_2 = np.loadtxt('my_array.csv')

Write array contents to file with Pandas

We can use the very powerful Pandas library to export our array matrix to a file and read it back:

import pandas as pd
my_df = pd.DataFrame(my_array)
my_df.to_csv('my_array.csv',header = False, index= False)

Here are the contents of our comma separated value file:

We can obviously read the file back to Pandas by using:

my_df = pd.read_csv('my_array.csv',header = None)