Saving and loading NumPy Arrays
Last Updated :
26 Dec, 2023
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 )
arr_reshaped = arr.reshape(arr.shape[ 0 ], - 1 )
gfg.savetxt( "geekfile.txt" , arr_reshaped)
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 ])
print ( "shape of arr: " , arr.shape)
print ( "shape of load_original_arr: " , load_original_arr.shape)
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
arr = np.random.rand( 5 , 4 , 3 )
arr_reshaped = arr.reshape(arr.shape[ 0 ], - 1 )
np.savetxt( "3d_array.csv" , arr_reshaped, delimiter = "," )
loaded_arr = np.loadtxt( "3d_array.csv" , delimiter = "," )
load_original_arr = loaded_arr.reshape((arr.shape[ 0 ], arr.shape[ 1 ], arr.shape[ 2 ]))
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
Share your thoughts in the comments
Please Login to comment...