2017-05-23 1 views
0

나는이 같은 일 개 NumPy와 배열이 있습니다NumPy 배열을 사용하여 다른 NumPy 배열의 행을 제거/필터링하는 방법은 무엇입니까?

array([[ True], 
     [ True], 
     [ True], 
     [False], 
     [False], 
     [False], 
     [False], 
     [False], 
     [False], 
     [False], 
     [False], 
     [False], 
     [False], 
     [False], 
     [False], 
     [False], 
     [False]], dtype=bool) 

내가 이런 다른 배열의 행 필터링이 배열을 사용하려면 다음 배열 초래 필터를 적용

array([[-0.45556594, 0.46623859], 
     [-1.80758847, -0.08109728], 
     [-0.9792373 , -0.15958186], 
     [ 4.58101272, -0.02224513], 
     [-1.64387422, -0.03813 ], 
     [-1.8175146 , -0.07419429], 
     [-1.15527867, -0.1074057 ], 
     [-1.48261467, -0.00875623], 
     [ 2.23701103, 0.67834847], 
     [ 1.45440669, -0.62921477], 
     [-1.13694557, 0.07002631], 
     [ 1.0645533 , 0.21917462], 
     [-0.03102173, 0.18059074], 
     [-1.16885461, -0.06968157], 
     [-0.51789417, -0.05855351], 
     [ 4.23881128, -0.30072904], 
     [-1.37940507, -0.06478938]]) 

을, 첫 번째 세 행 :

array([[-0.45556594, 0.46623859], 
     [-1.80758847, -0.08109728], 
     [-0.9792373 , -0.15958186]]) 

어떻게 수행 할 수 있습니까? B[A]과 같은 것을 시도 할 때, A이 필터 배열이고 다른 하나는 B인데, 나는 첫 번째 열만 얻습니다.

+1

사용'A''의 1D' 버전 :'B [A.ravel()]' . – Divakar

답변

1

전체 행을 선택하려고 했으므로 1 차원 배열에서 선택하기를 원할 것입니다. 당신은 명시 적으로 a의 첫 번째 열을 선택하고 함께 b에 적용 할 수 있습니다

b[a.ravel()] 

:

b[a[:, 0]]) 
의견에서 언급 한 바와 같이 당신은 당신의 부울 배열을 곧게 numpy.ravel()를 사용하여 b에 적용 할 수 있습니다

시험 코드 :

a = np.array(
    [[ True], 
    [ True], 
    [ True], 
    [False], 
    [False], 
    [False]], dtype=bool) 

b = np.array(
    [[-0.45556594, 0.46623859], 
    [-1.80758847, -0.08109728], 
    [-0.9792373 , -0.15958186], 
    [ 4.58101272, -0.02224513], 
    [-1.64387422, -0.03813 ], 
    [-1.37940507, -0.06478938]]) 

print(b[a.ravel()]) 
print(b[a[:, 0]]) 

결과 : 당신은 또한 자격 행 인덱스를 찾을 np.where을 사용할 수 있습니다

[[-0.45556594 0.46623859] 
[-1.80758847 -0.08109728] 
[-0.9792373 -0.15958186]] 

[[-0.45556594 0.46623859] 
[-1.80758847 -0.08109728] 
[-0.9792373 -0.15958186]] 
0

:

b[np.where(a)[0]] 
관련 문제