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
Saving and loading NumPy Arrays
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.
Contact Us