I have to launch a great number of calculations, and I have to save a 2D file text each time, so I would like to store results in "real-time" as a 3D text file with each slice corresponding to one calculation result.
The first calculation is OK, but when I do the second calculation, during the "np.loadtxt" step, the array dimensions become 2D... So I can't reach my aim... and I can't do a reshape when I begin to dimensions (... , ... , 1)
#MY FIRST RESULTS
test1 = open("C:/test.txt", "r")
test_r = np.genfromtxt(test, skip_header=1)
test_r = np.expand_dims(test_r, axis=2) #I create a new axis to save in 3D
test1.close()
#I test if the "Store" file to keep all my results is created.
try:
Store= np.loadtxt('C:/Store.txt')
except:
test=1
#If "Store" is not created, I do it or I concatenate in my file.
if test ==1:
Store= test_r
np.savetxt('C:/Store.txt', Store)
test=2
else:
Store = np.concatenate((Store,test_r), axis=2)
np.savetxt('C:/Store.txt', Store)
#MY SECOND RESULTS
test2 = open("C:/test.txt", "r")
test_r = np.genfromtxt(test, skip_header=1)
test_r = np.expand_dims(test_r, axis=2)
test2.close()
#I launch the procedure again to "save" the results BUT DURING THE LOADTXT STEP THE ARRAY DIMENSIONS CHANGE TO BECOME A 2D ARRAY...
try:
Store= np.loadtxt('C:/Store.txt')
except:
test=1
if test ==1:
Store= test_r
np.savetxt('C:/Store.txt', Store)
test=2
else:
Store = np.concatenate((Store,test_r), axis=2)
np.savetxt('C:/Store.txt', Store)
Here's an example of cPickle:
import cPickle
# write to cPickle
cPickle.dump( thing_to_save, open( "filename.pkl", "wb" ) )
# read from cPickle
thing_to_save = cPickle.load( open( "filename.pkl", "rb" ) )
The "wb"
and "rb"
parameters to the open()
function are important. CPickle writes objects in a binary format, so using just "w"
and "r"
won't work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With