나는 bool 배열 A와 B를 가지고 있고 C를 얻고 싶다. C는 A와 B의 논리 AND와 같지만 인덱스를 맞추는 데 약간의 흔들림이있다. 즉, 논리 AND는 A [r, c] AND B [r, c]를 수행 할 것입니다. 그러나 내가 원하는 것은 A [r +/- 1, c +/- 1] AND B [r +/- 1 , c +/- 1]. 모든 인덱스를 반복하지 않고 이상적으로이를 수행 할 수있는 좋은 방법이 있습니까?Numpy 논리적이고
>>> import numpy as np
>>> A
np.ndarray([[True, False, False, True],
[False, False, False, False],
[False, False, True, False],
[False, False, False, False])
>>> B
np.ndarray([[False, True, False, False],
[False, False, False, False],
[True, True, True, False],
[False, False, False, False])
>>> np.logical_and(A, B) # only (2,2) is True
np.ndarray([[False, False, False, False],
[False, False, False, False],
[False, False, True, False],
[False, False, False, False])
>>> C # (0,0), (1,0), and (2,1) also become True
np.ndarray([[True, False, False, False],
[True, False, False, False],
[False, True, True, False],
[False, False, False, False])
내가 중간 배열 AA 및 그 항목입니다 OR (A [R BB를 만들 것이다 +/- 1, c +/- 1]) 그리고 B에 대한 idem. 그러면 나는 논리와 AA와 BB 사이를 계산할 것이다. 이것은 여전히 A와 B – fonfonx
을 반복하거나 루프를 필요로하지 않지만 메모리가 비싸다. A에서 8 개의 쉬프트 된 배열을 만들 수 있으며 (B에서 모든 방향으로 +1 또는 -1) 그리고 모든 A 배열의 OR을 계산할 수있다. 모든 B 배열의 OR과 마지막으로이 중간 결과 간의 AND – fonfonx
흠, 아마 B의 값에 A의 해당 섹션을 넣을 수 있습니까? – AetherUnbound