문제

나는 Alghoritm지도/감소와 그 사용에 대해 알고 있습니다. Mappers 및 Reducer라고하는 기능을 사용하고 있지만 사람들이 단어 필터를 사용합니다.

필터가 매퍼와 동일합니까 아니면 큰 차이가 있습니까?

도움이 되었습니까?

해결책

필터는 전달 된 함수가 항상 "특성 함수"인 맵과 같습니다. 즉 "예"또는 "아니오"를 "여기에 속해 있습니까?"

다시 말해, {x | x ∈ X와 p (x) }. 필터는 기본 세트를 가져와 테스트하여 p (x) 사실이며, 그것이 사실 인 멤버 만 반환합니다.

그래서 { 엑스 | 엑스 자연 숫자와 홀수입니다 (엑스)}은 {1,3,5,7 ...}입니다.

지도 임의의 기능을 적용하므로 {y |와 같은 세트로 생각할 수 있습니다. x ∈ X 그리고 y = f (x) }.

그래서 { 와이 | 엑스 자연 숫자이며 y = x² }는 {1,4,9,16, ...}입니다.

다른 팁

필터는 "목록"을 가져 와서 함수를 목록의 모든 구성원에게 적용하고 함수의 적용이 true가 반환 된 멤버 만 포함 된 새 목록을 반환합니다. 예를 들어:

l = [1,2,3,4]
l = filter(lambda x: x < 3, l)
print l # [1,2]

MAP은 동일한 작업을 수행하지만 기능 응용 프로그램의 결과가 포함 된 목록을 반환합니다.

l = [1,2,3,4]
l = map(lambda x: x < 3, l)
print l # [True,True,False,False]

필터는 품목을 보관하거나 제거 해야하는지 결정합니다. 맵퍼는 값을 다른 값으로 변환합니다. 결과적으로 : 맵 작동의 출력 세트는 항상 입력 세트와 크기가 동일합니다. 필터 작동의 출력은 입력 세트보다 작습니다.

일반적으로 MAP 함수는 입력 세트와 함수를 취하고 각 입력 요소의 기능 출력을 포함하는 세트를 반환합니다. 필터는 입력 세트와 부울 함수를 가져 와서 함수가 true를 반환하는 입력 값을 포함하는 세트를 반환합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top