2014-09-09 3 views
2

저는 3D 배열을 가지고 있으며, 각 점에서 최대 값을 가진 X-Y를 따라 2D 이미지를 얻고 싶습니다. 그리고 numpy 배열로 저장하십시오.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 ('최대', CXY [I, J])

+1

첫째, matrix.max (axis = 2)는 for 루프에서 수행하는 작업을 수행합니다. 둘째, 데이터를 저장하려는 시도를 보여 주어야합니다. 그러면 데이터가 작동하지 않는 이유를 알 수 있습니다. – mdurant

+0

거기에 CXJ [i, j]가 아니라'CXJ'를 저장해야합니다. – mdurant

답변

10

나는 당신이에 저장하는 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) 

이 코드는 배열을 먼저 이진 파일로 저장 한 다음 파일로 저장하여 일반 텍스트 편집기에서 열 수 있습니다.

+1

'np.save'는 파이썬 2에서 파이썬 3 ([docs] (https://docs.scipy.org)로 갈 경우 당신을 매우 불행하게 만들지도 모른다. /doc/numpy/reference/generated/numpy.save.html)). – displayname

관련 문제