python矩阵平均单点附近

时间:2016-06-10 12:55:05

标签: python matrix

我有一个预先存在的算法,它打印出一个整数矩阵,表示特定文件的地形。如果单个点不能被平均,则算法用字符串替换整数(让我们称之为None)。

我的目标就是这个。

None的任何地方我想要取所有立即矩阵邻居的平均值并将其从浮点数转换为整数。见下文......

|1    2    3|
|4  None   5|
|6    7    8|

在这种情况下,我希望平均值为

(1+2+3+4+5+6+7+8)/8 = 4.5 = 5

非常感谢任何有关如何前进的帮助。

1 个答案:

答案 0 :(得分:0)

for i in xrange(len(mat)):
  for j in xrange(len(mat[i])):
    continue if mat[i][j] is not None;
    mat[i][j] = (sum([mat[a][b] if mat[a][b] else 0
                     for a in xrange(max(0, i-1), min(i+1, len(mat))
                     for b in xrange(max(0, j-1), min(j+1, len(mat[i])))]) / 
                 sum([1 if mat[a][b] is not None else 0
                     for a in xrange(max(0, i-1), min(i+1, len(mat))
                     for b in xrange(max(0, j-1), min(j+1, len(mat[i])))]))