Open In App

Saving and loading NumPy Arrays

Improve
Improve
Like Article
Like
Save
Share
Report

The savetxt() and loadtxt() functions in NumPy are primarily designed for 1D and 2D arrays (text files with row/column format). When dealing with a 3D NumPy array, these functions can be a bit limited because they cannot directly handle the 3D structure. However, you can reshape the 3D array into a 2D array, save it, and then reshape it back to its original form upon loading. In this article, we will see how to load and save 3D NumPy Array to file using savetxt() and loadtxt() functions and NumPy loadtxt and savetxt usage guide.

Load and Save 3D Numpy Array to File

Below are the ways by which we can load and save 3D NumPy array to file using savetxt() and loadtxt() functions in Python:

  • Utilize the savetxt() and loadtxt() functions for TXT files
  • Saving and loading the 3D arrays(reshaped) into CSV files

Example 1: Saving a 3D Numpy Array as a Text File

In this example, a 3D NumPy array arr is reshaped into a 2D format and saved to a text file named “geekfile.txt” using savetxt(). Later, the data is retrieved from the file, reshaped back to its original 3D form, and compared with the original array to verify its equality.

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


Output:

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

Example 2: Saving and loading the 3D arrays(reshaped) into CSV files

In this example, we will perform saving and loading the 3D arrays(reshaped) into CSV files by using savetxt and loadtxt functions respectively. Here, a random 3D NumPy array arr is reshaped into a 2D format, saved as a CSV file, and then loaded back into a 2D array. The loaded data is reshaped back to its original 3D form, and a comparison is made with the original array to confirm their equality.

Python3




import numpy as np
 
# Create a sample 3D array
arr = np.random.rand(5, 4, 3)
 
# Reshape the 3D array to 2D
arr_reshaped = arr.reshape(arr.shape[0], -1)
 
# Save the 2D array to a CSV file
np.savetxt("3d_array.csv", arr_reshaped, delimiter=",")
 
# Load the 2D array from the CSV file
loaded_arr = np.loadtxt("3d_array.csv", delimiter=",")
 
# Reshape the 2D array back to its original 3D shape
load_original_arr = loaded_arr.reshape((arr.shape[0], arr.shape[1], arr.shape[2]))
 
# Verify if the loaded array matches the original
if np.array_equal(load_original_arr, arr):
    print("Yes, both the arrays are the same")
else:
    print("No, both the arrays are not the same")


Output:

Yes, both the arrays are same


Last Updated : 26 Dec, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads