如何将3D Python/NumPy数组另存为文本文件? [英] How do I save a 3D Python/NumPy array as a text file?
问题描述
我必须启动大量计算,并且每次都必须保存2D文件文本,因此我想将结果作为3D文本文件实时"存储,每个切片对应一个计算结果.
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.
第一次计算是可以的,但是当我执行第二次计算时,在"np.loadtxt"步骤中,数组维数变为2D ...所以我无法达到目标...而且我无法当我开始标注(...,...,1)尺寸时进行重塑
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)
推荐答案
以下是cPickle的示例:
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" ) )
open()
函数的"wb"
和"rb"
参数很重要. CPickle以二进制格式写入对象,因此仅使用"w"
和"r"
无效.
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.
这篇关于如何将3D Python/NumPy数组另存为文本文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!