Захват узлов по краям матрицы по модулю - PullRequest
0 голосов
/ 11 февраля 2020

Итак, я должен выполнить упражнение, и я не могу всю жизнь найти, как решить эту проблему. Вот разбивка упражнения:

Я получил матричную сетку 1000x1000 numpy, в которой все узлы имеют значение -1 (пусто), 0 или 1, и упражнение подсказало мне все 8 соседей от каждого узла, причем те по углам, которые захватывают узлы на противоположной стороне матрицы в качестве своих соседей. Таким образом, самые правые схватят самых левых в качестве своего правого соседа. Я мог бы сделать это вручную, но упражнение говорит мне, чтобы использовать это по модулю, и вот где я заблудился. Это то, что я имею, не хватая края:

def neighbours(grid, y, x):
neighbourvalues = []
if y >= 0 and x >= 0 and y <= len(grid) and x <= len(grid[0]):
    neighbourpos.append(grid[y+1][x+1])
    neighbourpos.append(grid[y+1][x])
    neighbourpos.append(grid[y+1][x-1])
    neighbourpos.append(grid[y][x+1])
    neighbourpos.append(grid[y][x-1])
    neighbourpos.append(grid[y-1][x+1])
    neighbourpos.append(grid[y-1][x])
    neighbourpos.append(grid[y-1][x-1])
return neighbourvalues

Я понимаю, что делает по модулю, но я не могу обернуть голову, как использовать его с позициями на матрице. Итак, мой вопрос к вам: вы можете помочь мне с попыткой получить правильные грани по модулю?

...