2017-04-09 3 views
1

numpy.split을 사용하여 numpy.ndarray를 겹치는 부분으로 분할 할 수 있습니까?중복 행렬이있는 Numpy.split?

예 :

모양 (3,3)의 numpy.ndarray 감안할 때 나는 (1,1)하는

numpy.split((3,3),(1,1)) = [(1,1),(1,1),(1,1)] 

그러나 경우에 의해 모양, ndarray으로 분할 할 numpy.ndarrays (3,2)의 numpy.ndarrays를 원했을 때 numpy.ndarrays가 중복되어 길이가 2 인 목록을 생성 할 수 있습니까? 같은

:

enter image description here

+0

'np.arange (9) .reshape ((3, 3))'와 같은 입력을 주면 출력을 어떻게 보이게 할 수 있습니까? (또한 : 왜 당신이 이것을 원합니까?) 내 생각은'np.lib.index_tricks.as_strided'가 될 것입니다. – mdurant

+0

@mdurant image와 함께 예제를 추가했습니다. 첫 번째 집합과 두 번째 집합 사이의 부드러운 전환을 생성하는 방법으로 중첩을 사용하고 있습니다. 시. 나는 또한 원하는 모양을 (2,2)에서 (3,2)로 수정했다 ... 혼란을 야기했을 수도있다. –

+0

나는 내 자신의 게시물을 표시했다. 다른 곳에서 해결책을 찾았습니다. –

답변

1

난 당신이보고 싶은 정확히 잘 모르겠지만,이 질문에 대답 수 있습니다 입력으로

: 흥미롭게도

> arr = np.arange(9, dtype='int64').reshape((3, 3)) 

array([[0, 1, 2], 
     [3, 4, 5], 
     [6, 7, 8]]) 


> np.lib.index_tricks.as_strided(arr, (2, 2, 2, 2), (24, 8, 24, 8), True) 

array([[[[0, 1], 
     [3, 4]], 
     [[1, 2], 
     [4, 5]]], 
     [[[3, 4], 
     [6, 7]], 
     [[4, 5], 
     [7, 8]]]]) 

을, 여기에는 데이터 사본이 없습니다. as_strided의 값은 8 바이트 값과 3x3 입력에 대해서만 정확합니다. 입력의 기존 모양/보폭에서 가져올 수 있습니다.

+0

함수에 입력 한 매개 변수에 대해 조금 자세히 설명해 줄 수 있습니까? –

+0

올바르게 매개 변수화하려면이 게시물에서 비트를 가져올 수 있습니다. http://stackoverflow.com/a/16788733/3293881 – Divakar