Мне нужно запустить большое количество вычислений, и мне приходится каждый раз сохранять текст в 2D-файле, поэтому я хотел бы сохранить результаты в режиме реального времени в виде 3D-текстового файла с каждым фрагментом, соответствующим одному результату вычисления ,Как сохранить 3D-массив Python/NumPy в виде текстового файла?
Первый расчет в порядке, но когда я делаю второй расчет, во время шага «np.loadtxt» размеры массива становятся 2D ... Поэтому я не могу достичь своей цели ... и я могу " т сделать Reshape, когда я начинаю размеры (..., ..., 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)
Может быть, вы могли бы быть заинтересованы, а с помощью модуля Рассол, который с легкостью можете сохранить/загрузить любой объект Python? –
Я не знаю, я проверю это;) спасибо, у вас есть пример? я ищу это – user3601754
В зависимости от вашего варианта использования вы можете уйти с чем-то похожим на то, что я делал недавно на работе. Возьмите свой массив numpy, конвертируйте в обычный список python и добавьте его в файл JSON. JSON очень портативен, и вы можете читать свои массивы оттуда. Как сказал Барухель, существуют способы хранения ваших данных numpy в двоичной форме (например, рассол). У Numpy есть встроенные функции для этого (первые два модуля поверх списка http://docs.scipy.org/doc/numpy-1.10.0/reference/routines.io.html) –