나는 numpy에서 시작하고있다! numpy 일부 함수가 다른 배열에서 배열을 검색하고 유사한 배열을 반환 할 수 있습니까? 감사!
import numpy as np
def searchBinA(B = ['04','22'],A):
result = []
?......? numpy.search(B,A)? "is this correct?"
return result
A = [['03', '04', '18', '22', '25', '29','30'], ['02', '04', '07', '09', '14', '29','30'], \
['06', '08', '11', '13', '17', '19','30'], ['04', '08', '22', '23', '27', '29','30'], \
['03', '05', '15', '22', '24', '25','30']]
print(str(searchBinA()))
output:[['03', '04', '18', '22', '25', '29','30'], ['04', '08', '22', '23', '27', '29','30']]
가정 입력이 NumPy와 배열하고 아무 중복의 각 행에서이없는 A
여기 사용 방법이야, np.in1d
-
A[np.in1d(A,B).reshape(A.shape).sum(1) == len(B)]
설명-
with의 A
모든 요소 와 일치하는 마스크를 가져옵니다 . 이것은 1D 부울 배열입니다.B
np.in1d(A,B)
로부터 수득 부울 배열 바꿀 np.in1d(A,B)
행 A's
형상을하고있는 행을 보면 n
각 행에 대해 일치하는 n
요소의 수이다 B
. 각 행에는 고유 한 요소가 있으므로 n
일치하는 행은 최종 출력에서 원하는 행입니다.
따라서 행을 따라 2D 재구성 된 부울 배열을 합하고 부울 n
마스크를 제공하는 것과 비교 합니다. 부울 마스크는 인덱싱 될 때 A
원하는 출력으로 선택적인 행을 제공합니다.
샘플 실행-
In [23]: A
Out[23]:
array([['03', '04', '18', '22', '25', '29', '30'],
['02', '04', '07', '09', '14', '29', '30'],
['06', '08', '11', '13', '17', '19', '30'],
['04', '08', '22', '23', '27', '29', '30'],
['03', '05', '15', '22', '24', '25', '30']],
dtype='|S2')
In [24]: B
Out[24]:
array(['04', '22'],
dtype='|S2')
In [25]: A[np.in1d(A,B).reshape(A.shape).sum(1) == len(B)]
Out[25]:
array([['03', '04', '18', '22', '25', '29', '30'],
['04', '08', '22', '23', '27', '29', '30']],
dtype='|S2')
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다