Home > OS >  Saving 3 dimensional array to a file in Python
Saving 3 dimensional array to a file in Python

Time:08-31

I want to save a 3 dimensional arrays values to a txt or csv file in python. dCx, dCy

I used:

numpy.savetxt('C:/Users/musa/Desktop/LOCO_All_tests/FODO_Example/AllQ/dCx.csv',dCx,delimiter=',')
numpy.savetxt('C:/Users/musa/Desktop/LOCO_All_tests/FODO_Example/AllQ/dCy.csv',dCy,delimiter=',')

And to load it again:

dCx = numpy.genfromtxt('C:/Users/musa/Desktop/LOCO_All_tests/FODO_Example/AllQ/dCx.csv', delimiter=',')
dCy = numpy.genfromtxt('C:/Users/musa/Desktop/LOCO_All_tests/FODO_Example/AllQ/dCy.csv', delimiter=',')

But i got the error massage

"Expected 1D or 2D array, got 3D array instead"

Si i wanted to change the 3d arrays first to 2 arrays and then save it to the files, and when uploaded again i convert it back to 3d for example:

dCx2 = np.array(dCx).reshape(np.array(dCx).shape[0], -1)
dCy2 = np.array(dCy).reshape(np.array(dCy).shape[0], -1)

and after loaded to variable named dCx3 and dCy3 i used:

dCx = np.array(dCx3).reshape(
    np.array(dCx3).shape[0], np.array(dCx3).shape[1] // np.array(dCx).shape[2], np.array(dCx).shape[2])

#dCy = np.array(dCy3).reshape(
#    np.array(dCy3).shape[0], np.array(dCy3).shape[1] // np.array(dCy).shape[2], np.array(dCy).shape[2])

I am looking for a better method that i can used in the saving the 3d arrays to file, or a method to convert the 2d into 3d without having to measure the original arrays every time as it is used in this line:

 np.array(dCy).shape[2], np.array(dCy).shape[2])

CodePudding user response:

Use numpy.save(filepath, data) and data = numpy.load(filepath).

These are binary file formats, and generic for any type of NumPy data

CodePudding user response:

Try tofile. it works for in my case. but array will write in 1D

import numpy as np
arr=np.arange(0,21).reshape(7,3)
arr.tofile('file.txt',sep=',')
arr2=np.fromfile('file.txt',sep=',')
  • Related