我有一个矩阵,例如:
针对矩阵中的每个元素,我试图获取其相邻对角线元素的总和以及其相邻水平和垂直元素的总和。
以矩阵中间的3为例,我试图计算对角线相邻元素(1)和水平和垂直相邻元素(2)的总和。 对于角落和边缘情况,我希望忽略没有元素的区域,例如(对于左上角的4,我想要获取对角线相邻的1和水平和垂直相邻的5的总和)。
在Python中,最有效的方法是什么?
到目前为止,我想到了:
[[4,5,0,0,0],
[5,1,2,1,0],
[0,2,3,2,0],
[0,1,2,1,0],
[0,0,0,0,0]]
针对矩阵中的每个元素,我试图获取其相邻对角线元素的总和以及其相邻水平和垂直元素的总和。
以矩阵中间的3为例,我试图计算对角线相邻元素(1)和水平和垂直相邻元素(2)的总和。 对于角落和边缘情况,我希望忽略没有元素的区域,例如(对于左上角的4,我想要获取对角线相邻的1和水平和垂直相邻的5的总和)。
在Python中,最有效的方法是什么?
到目前为止,我想到了:
diagonals = lambda x,y:[(x-1, y-1), (x-1,y+1), (x+1,y-1), (x+1,y+1)]
horiz_vert= lambda x,y:[(x,y+1), (x,y-1), (x+1,y), (x-1,y)]
要获取索引,但这些不考虑边缘和角落的情况。