2016-06-28 5 views
1

나는 모양을 바꾸고 배열해야하는 3D numpy 배열을 가지고 있습니다. 예를 들어, 내가 가진의 모양 (3,4,3)을 인쇄 할 때 내가 얻을 수있다 x=np.array([np.array([np.array([1,0,1]),np.array([1,1,1]),np.array([0,1,0]),np.array([1,1,0])]),np.array([np.array([0,0,1]),np.array([0,0,0]),np.array([0,1,1]),np.array([1,0,0])]),np.array([np.array([1,0,0]),np.array([1,0,1]),np.array([1,1,1]),np.array([0,0,0])])])Numpy 3D 배열 배열 및 재 형성

:

array([[[1, 0, 1], 
     [1, 1, 1], 
     [0, 1, 0], 
     [1, 1, 0]], 

     [[0, 0, 1], 
     [0, 0, 0], 
     [0, 1, 1], 
     [1, 0, 0]], 

     [[1, 0, 0], 
     [1, 0, 1], 
     [1, 1, 1], 
     [0, 0, 0]]]) 

지금 내가 같은를 선택하여 (4,3,3)이 배열을 바꿀 필요가 각 부분 배열의 인덱스와 함께 퍼팅이 같은 뭔가 결국 :

array([[[1,0,1],[0,0,1],[1,0,0]], 
[[1,1,1],[0,0,0],[1,0,1]], 
[[0,1,0],[0,1,1],[1,1,1]], 
[[1,1,0],[1,0,0],[0,0,0]]] 

내가 reshape을 시도, 적재하지 아무것도 모든 종류의 일을 (내가 필요한처럼 배열을 정렬). 내가 수동으로 할 수 있지만 큰 배열 수동으로 선택의 여지가 없다는 것을 압니다.

도움이 될 것입니다. 감사합니다.

+0

배열 생성을 간단하게 할 수 있습니다 :'x = np.array ([[[1,0,1], [1,1,1], ... 1,1], [0,0, 0]]])' – hpaulj

답변

3

swapaxes 원하는대로 할 수 있습니다. 사용자의 입력 배열 x이고

np.all(y==np.swapaxes(x, 1, 0)) 

True 줘야 원하는 출력 후, y 경우 즉,이다.

+0

또한 'rollaxis'일 수도 있습니다. 이 경우에는 두 개가 동일 할 것입니다. 그러나 더 높은 차원의 배열의 경우 'rollaxis'는 다른 축의 순서를 더 잘 보존하므로 원하는 경우가 많습니다. –