保存一个numpy矩阵

Cat*_*aCM 2 python arrays numpy matrix

我有一个3D数组,我希望沿XY获得一个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,:])
Run Code Online (Sandbox Code Playgroud)

问题是保存获得的矩阵.我想用numpy.save保存它,但我总是得到一个空数组.有没有人有建议正确保存获得的数组?

我刚刚使用了num.save:

num.save('max',CXY [i,j])

小智 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)
Run Code Online (Sandbox Code Playgroud)

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

  • 值得一提的是,如果没有其他指定,`np.save` 会将内容存储为泡菜文件,如果您从 Python 2 升级到 Python 3,这可能会让您非常不高兴([参见文档](https://docs.scipy.org/ doc/numpy/reference/generated/numpy.save.html))。 (2认同)