1
부울 numpy 배열에 몇 가지 기본 클러스터링을 찾고 기본적으로 마스크를 사용하여 2 차원 평균화를 시도하고 있지만 실제로보다 나은 솔루션이 있어야합니다.numpy 어레이 마스크 평균
def grab_window(location, array, window=(3,3)):
minimums = [min(0, i-a) for i, a in zip(location, window)]
maximums = [(i + a) for i, a in zip(location, window)]
answer = array
for i, _ in enumerate(location):
answer = answer[slice(minimums[i],maximums[i])]
return answer
을 그리고 나는 기본적으로 단지 커널에 의해 각각의 창을 곱한 수정 된 윈도우의 평균을 반환, 원래의 배열을 반복 :이 느리고 우아 이후 ', 도착했습니다.
필터 나 비슷한 효과가있는 것 같지만 지금까지 찾을 수 없었습니다.
편집 : 위치는 창과 비슷한 형태의 tuple
입니다. 우리는 내가이 라인을 따라 뭔가를 찾고있을 것 균일 한 겹 마스크, 이것의 간단한 버전을 수행하는 경우 예를 들어
는 :
import numpy as np
test = np.arange(0,24).reshape(6, 4)
footprint = [
[1,1,1],
[1,0,1],
[1,1,1]
]
some_function(test, footprint)
array([[ 1, 2, 3, 4],
[ 4, 5, 6, 6],
[ 8, 9, 10, 10],
[12, 13, 14, 14],
[16, 17, 18, 18],
[18, 19, 20, 21]])
은 우리에게 location''의 샘플을 제공합니다. – emeth
죄송합니다,'array' 제발. – emeth
은'location' 튜플이고'window'는 항상 쌍을 이루고 있습니까? – TooTone