保存一个numpy矩阵

时间:2014-09-09 16:01:11

标签: python arrays numpy matrix

我有一个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])

1 个答案:

答案 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)

此代码首先将数组保存为二进制文件,然后将文件保存为常规文本编辑器中的文件。