【发布时间】:2022-01-15 20:12:18
【问题描述】:
我有一个疑问。有没有一种有效的方法可以在不使用多个条件的情况下对 numpy 矩阵的所有邻居求和?
这是一个例子:
array([[5, 4, 8, 3, 1, 4, 3, 2, 2, 3],
[2, 7, 4, 5, 8, 5, 4, 7, 1, 1],
[5, 2, 6, 4, 5, 5, 6, 1, 7, 3],
[6, 1, 4, 1, 3, 3, 6, 1, 4, 6],
[6, 3, 5, 7, 3, 8, 5, 4, 7, 8],
[4, 1, 6, 7, 5, 2, 4, 6, 4, 5],
[2, 1, 7, 6, 8, 4, 1, 7, 2, 1],
[6, 8, 8, 2, 8, 8, 1, 1, 3, 4],
[4, 8, 4, 6, 8, 4, 8, 5, 5, 4],
[5, 2, 8, 3, 7, 5, 1, 5, 2, 6]])
当我运行 m[0][-1] 时,它返回 3 而不是错误,所以如果我想将 1 添加到一个值的所有邻居,我需要使用很多条件,因为我不能只使用 m[0][-1],因为在这种情况下,在角落的其他情况下,它返回给我的只是一个“假邻居”
【问题讨论】:
-
您的预期输出是什么?你试过什么?你想总结几个邻居?
-
我认为你只需要添加一个条件,即索引应该是正数。
-
@UlisesBussi 我想为所有邻居添加 +1 以获得特定值。但是邻居的总数是不同的。例如。对于第一个值 5,邻居是 2;4 和 7。
-
那么你必须小心限制(当 i=0 或 i=len(m) 和 j=0 或 j=len(m[0]) 时)。这应该是你唯一的条件. 但是您可以调用 make 2 fors 来查找所有邻居或将案例保存为列表
标签: python arrays numpy matrix indexing