我有一个3D数组,我希望沿着X-Y获得一个2D图像,每个点的最大值为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])
答案 0 :(得分:12)
我猜您正在寻找以人类可读格式保存的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)
此代码首先将数组保存为二进制文件,然后将文件保存为常规文本编辑器中的文件。