保存numpy矩阵

3 投票
1 回答
50739 浏览
提问于 2025-04-20 16:53

我有一个三维数组,现在想要在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)

这段代码先把数组保存成一个二进制文件,然后再保存成一个可以用普通文本编辑器打开的文件。

撰写回答