numpy 메서드를 사용하여 다른 np 배열의 조건에 따라 한 np 배열의 특정 행에 대해 작업을 수행하는 방법은 무엇입니까?

mha

예를 들어, A = [[30, 60, 50...], [ 15, 20, 18...], [21, 81, 50...]...]size의 np 배열이 하나 있습니다 (N, 10).

그리고 B = [1, 1, 0...]크기의 또 다른 np 배열 이 있습니다 (N, ).

예를 들어 A의 각 열의 모든 합계를 원하지만 B == 1 인 행에 대해서만 작업을 수행하고 싶습니다. 루프를 사용하지 않고 numpy 메서드를 사용하지 않고 어떻게 할 수 있습니까?

따라서 B == 1 인 인덱스에 대해 A의 열 합계를 원하면

result = 30 + 15 B의 처음 두 인덱스는 1이지만 세 번째 인덱스는 0이므로 합계에 포함하지 않습니다.

사얀 디프 두타

사용 np.compresssum축을 따라 = 0

>>> A = [[30, 60, 50], [ 15, 20, 18], [21, 81, 50]]
>>> B = [1, 1, 0]
>>> np.compress(B, A, axis=0).sum(0)
array([45, 80, 68])

배열의 경우, 사용 np.nonzeroB:

>>> A = np.array([[30, 60, 50], [ 15, 20, 18], [21, 81, 50]])
>>> A[np.nonzero(B)].sum(0)
array([45, 80, 68])

또 다른 방법:

>>> A[B.astype(bool)].sum(0)
array([45, 80, 68])

원하는 경우 0:

>>> np.compress(B==0, A, axis=0).sum(0)
# Or,
>>> A[np.nonzero(B==0)].sum(0)
# Or,
>>> A[~B.astype(bool)].sum(0)

1s와 0s를 모두 원하는 경우 분명히 :

>>> A.sum(0)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관