2017-11-02 1 views
1

각 열에 대한 인덱싱을 통해 배열에서 항목을 가져오고 싶습니다. 예를 들어, 같은 인덱스 :각 열의 numpy 인덱싱

  1. 배열의 제로 번째 컬럼의 1, 2 요소를 얻고, 결과의 제로 번째 컬럼에 넣어 :

    [[1, 3], 
    [2, 4]] 
    

    는 것을 의미한다.

  2. 배열의 첫 번째 열의 세 번째 요소와 네 번째 요소를 가져 와서 결과의 첫 번째 열에 넣습니다.

프로그램 :

import numpy as np 
arr = np.arange(12).reshape(3,4) 
print(arr) 

ind = np.array(
    [[1,1,1,1], 
    [2,2,2,2]] 
) 

result = arr[np.arange(2)[:, np.newaxis], ind[np.newaxis,:]] 
print(result) 

결과 :

[[ 0 1 2 3] 
[ 4 5 6 7] 
[ 8 9 10 11]] 

[[[1 1 1 1] 
    [6 6 6 6]]] 

예상 결과 :

[[ 0 1 2 3] 
[ 4 5 6 7] 
[ 8 9 10 11]] 

[[[4 5 6 7] 
    [8 9 10 11]]] 

어떻게 예상 된 결과를 얻을 수?

답변

0

이 작동 :

import numpy as np 
x = np.arange(12).reshape(3,4) 

y = np.array(
    [[1,1,1,1], 
    [2,2,2,2]] 
) 

z = x[y[:, np.newaxis], np.arange(4)[np.newaxis, :]] 

print(z) 

결과 :

[[[ 4 5 6 7]] 

[[ 8 9 10 11]]] 
+0

그러나 나는 이유를 알지 못한다. –

+0

확인. 알 겠어. 오른쪽 축에서 방영하는 것입니다. –

관련 문제