Numpy를 사용하여 요소 순서에 관계없이 다른 배열에서 동일한 행을 어떻게 찾을 수 있습니까? [복제]
Aug 19 2020
나는 프로젝트를 진행하던 중이 문제를 발견했습니다. (8,3) 및 (2,2) 모양의 두 배열 A와 B가 있습니다. B의 요소 순서에 관계없이 B의 각 행의 요소를 포함하는 A의 모든 행을 어떻게 찾을 수 있습니까?
A = np.random.randint(0,5,(8,3))
B = np.random.randint(0,5,(2,2))
감사!
답변
2 Geom Aug 19 2020 at 06:05
한 가지 방법은 다음과 같습니다.
Import numpy as np
A = np.random.randint(0,5,(8,3))
B = np.random.randint(0,5,(2,2))
C = (A[..., np.newaxis, np.newaxis] == B)
rows = np.where(C.any((3,1)).all(1))[0]
print(rows)
산출:
[0 2 3 4]
2 BrycePaule Aug 19 2020 at 06:14
import numpy as np
A = np.random.randint(0, 5, (8, 3))
B = np.random.randint(0, 5, (2, 2))
for BRow in B:
for ARow in A:
if all(item in ARow for item in BRow):
print(f'{BRow} in {ARow}')
이것은 중복을 확인하지 않습니다. 예를 들어 [3, 3] in [1, 2, 3]