假设我有一个名为“grid”的矩阵:
grid = [ [1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1] ]
我想尝试定义一个函数,该函数获取 1 个单元半径中每个邻居的内容,并将这些值添加到一个新矩阵中,如下所示:
grid = [ [3, 5, 5, 3],
[5, 8, 8, 5],
[5, 8, 8, 5],
[3, 5, 5, 3] ]
我找到了解决方案 - 又快又脏:)
grid = [ [1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1] ]
rows = len(grid)
cols = len(grid[0])
def get_sum_of_neighbours(grid, r, c):
neighbours = [
(r - 1, c - 1), (r - 1, c), (r - 1, c + 1),
(r, c - 1), (r, c + 1),
(r + 1, c - 1), (r + 1, c), (r + 1, c + 1),
]
return sum([grid[r_n][c_n]
for r_n, c_n in neighbours
if 0 <= r_n < rows and 0 <= c_n < cols])
resultgrid = []
for r in range(rows):
row = []
for c in range(cols):
row.append(get_sum_of_neighbours(grid, r, c))
resultgrid.append(row)
for row in resultgrid:
print(row)
没有第三方工具,如 scipy 或 numpy ...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句