保存numpy矩阵
我有一个三维数组,现在想要在X-Y平面上得到一个二维图像,这个图像的每个点都代表在Z轴上最大值的情况,并把它保存为一个numpy数组。
import numpy as num
matrix=num.load('3d')
nx,ny,nz=num.shape(matrix)
CXY=num.zeros([ny, nx])
for i in range(ny):
for j in range(nx):
CXY[i,j]=num.max(matrix[j,i,:])
问题在于如何保存这个得到的矩阵。我想用numpy.save来保存,但我总是得到一个空数组。有没有人能给点建议,教我怎么正确保存这个数组?
我只是用了num.save:
num.save('max', CXY[i,j])
1 个回答
16
我想你是在找numpy.savetxt这个功能,它可以把数据保存成人类可以读懂的格式,而不是像numpy.save那样保存成二进制格式。
import numpy as np
matrix=np.random.random((10,10,42))
nx,ny,nz=np.shape(matrix)
CXY=np.zeros([ny, nx])
for i in range(ny):
for j in range(nx):
CXY[i,j]=np.max(matrix[j,i,:])
#Binary data
np.save('maximums.npy', CXY)
#Human readable data
np.savetxt('maximums.txt', CXY)
这段代码先把数组保存成一个二进制文件,然后再保存成一个可以用普通文本编辑器打开的文件。