나는 파이썬을 사용하여 문제를 해결하려고 노력하고 있는데 이것은 파이썬을 작성하는 것은 이번이 처음이므로 나를 도울 수 있기를 바랍니다. 2D 배열이 있는데 그 값은 -1,0,1
특정 요소의 좌표를 가져와 모든 인접 요소의 좌표를 얻는 것입니다.
Matrix = [[ 1,-1, 0],
[ 1, 0, 0],
[-1,-1, 1]]
예를 들어 내가있는 경우 (0,0)
함수가 반환 할 수 있도록 (0,1)
,(1,0)
좌표 에서 작업하기를 원하므로 NetworkX를 사용하여 그리드 그래프를 정의 하고 다음을 찾는 것입니다 neighbours
.
import networkx as nx
import numpy as np
a = np.array([[1,-1,0],
[1,0,0],
[-1,-1,1]])
G = nx.grid_2d_graph(*a.shape)
list(G.neighbors((0,0)))
# [(1, 0), (0, 1)]
또는 예를 들어 중간 값의 "좌표"의 경우 :
list(G.neighbors((1,1)))
# [(0, 1), (2, 1), (1, 0), (1, 2)]
그것들을 사용하여 배열을 인덱싱하려면 :
ix = list(G.neighbors((0,0)))
a[tuple(ix)]
# array([ 1, -1])
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다