패키지 scipy에는 이진 구조 (taxicab (2,1) 또는 체스 보드 (2,2) 등)를 정의하는 함수가 있습니다.numpy 배열을 통해 이진 구조로 반복하여 셀 합계를 얻습니다.
import numpy
from scipy import ndimage
a = numpy.zeros((6,6), dtype=numpy.int)
a[1:5, 1:5] = 1;a[3,3] = 0 ; a[2,2] = 2
s = ndimage.generate_binary_structure(2,2) # Binary structure
#.... Calculate Sum of
result_array = numpy.zeros_like(a)
는 내가 원하는 주어진 구조의이 배열의 모든 셀을 반복하는 것입니다. 그런 다음 이진 구조의 모든 셀 값을 사용하는 빈 배열 (예 : 함수 합계)에 인덱싱 된 현재 셀 값에 함수를 추가하려고합니다. 예를 들어
:
array([[0, 0, 0, 0, 0, 0],
[0, 1, 1, 1, 1, 0],
[0, 1, 2, 1, 1, 0],
[0, 1, 1, 0, 1, 0],
[0, 1, 1, 1, 1, 0],
[0, 0, 0, 0, 0, 0]])
# 상기 어레이. 셀 1,2의 값은 현재 하나입니다. 구조체와 sum과 같은 예제 함수가 주어지면 결과 배열 (result_array)의 값은 7이됩니다 (현재 셀 값이 제외되면 6이됩니다).
누군가가 아이디어를 얻었습니까?
어디에서 ndimage를 얻었습니까? –
오, 죄송합니다. 당신은 scipy에서 가져와야합니다. 게시물을 편집했습니다 – Curlew