**Prerequisites:** numpy.savetxt(), numpy.loadtxt()

**Numpy.savetxt()** is a method in python in numpy library to save an 1D and 2D array to a file.

Syntax:numpy.savetxt(fname, X, fmt=’%.18e’, delimiter=’ ‘, newline=’\n’, header=”, footer=”, comments=’# ‘, encoding=None)

**numpy.loadtxt()** is a method in python in numpy library to load data from a text file for faster reading.

Syntax:numpy.loadtxt(fname, dtype=’float’, comments=’#’, delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0)

**Saving and loading 3D arrays**

As discussed earlier we can only use 1D or 2D array in numpy.savetxt(), and if we use an array of more dimensions it will throw a **ValueError –** Expected 1D or 2D array, got 3D array instead. Therefore, we need to find a way to save and retrieve, at least for 3D arrays, here’s how you can do this by using some Python tricks.

**Step 1:**reshape the 3D array to 2D array.**Step 2:**Insert this array to the file**Step 3:**Load data from the file to display**Step 4:**convert back to the original shaped array

**Example:**

## Python3

`import` `numpy as gfg ` ` ` ` ` `arr ` `=` `gfg.random.rand(` `5` `, ` `4` `, ` `3` `) ` ` ` `# reshaping the array from 3D ` `# matrice to 2D matrice. ` `arr_reshaped ` `=` `arr.reshape(arr.shape[` `0` `], ` `-` `1` `) ` ` ` `# saving reshaped array to file. ` `gfg.savetxt(` `"geekfile.txt"` `, arr_reshaped) ` ` ` `# retrieving data from file. ` `loaded_arr ` `=` `gfg.loadtxt(` `"geekfile.txt"` `) ` ` ` `# This loadedArr is a 2D array, therefore ` `# we need to convert it to the original ` `# array shape.reshaping to get original ` `# matrice with original shape. ` `load_original_arr ` `=` `loaded_arr.reshape( ` ` ` `loaded_arr.shape[` `0` `], loaded_arr.shape[` `1` `] ` `/` `/` `arr.shape[` `2` `], arr.shape[` `2` `]) ` ` ` `# check the shapes: ` `print` `(` `"shape of arr: "` `, arr.shape) ` `print` `(` `"shape of load_original_arr: "` `, load_original_arr.shape) ` ` ` `# check if both arrays are same or not: ` `if` `(load_original_arr ` `=` `=` `arr).` `all` `(): ` ` ` `print` `(` `"Yes, both the arrays are same"` `) ` `else` `: ` ` ` `print` `(` `"No, both the arrays are not same"` `) ` |

*chevron_right*

*filter_none*

**Output:**

shape of arr: (5, 4, 3) shape of load_original_arr: (5, 4, 3) Yes, both the arrays are same

Attention geek! Strengthen your foundations with the **Python Programming Foundation** Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the **Python DS** Course.