python - 在python中检查矩阵中靠近元素的值
问题描述
考虑以下矩阵:
[[true,false,false,true],
[false,false,true,false],
[true,true,false,true]]
我希望 python 检查靠近每个元素的元素的值。例如,[0][0] 元素为真,而围绕它的三个元素为假,因此它应该返回类似 [0,0,0] 的东西。
(element),false
false,false
对于 [0][1] 元素,结果应为 [1,0,0,1,0]:
true,(element),false
false,false,true
依此类推(0和1的顺序并不重要,只是它们的数量)。我一直在尝试使用一些算法来做到这一点,但首先它需要很长时间,因为附近的元素每个项目都不同,使用 (for,while) 循环变得非常棘手,其次执行时间会变得很长。我的问题是,是否有任何库或方法(如 numpy)让我的工作更轻松?
解决方案
像这样的东西可能会起作用:
mat = [[True, False, False, True],
[False, False, True, False],
[True, True, False, True]]
max_i = len(mat)
max_j = len(mat[0])
def surrounding(i, j):
ret = []
for ii in range(max(0, i-1), min(i+2, max_i)):
for jj in range(max(0, j-1), min(j+2, max_j)):
if (ii, jj) == (i, j):
continue
ret.append(int(mat[ii][jj]))
return ret
注意 s 中的min
andmax
函数,range
它们负责处理矩阵的边界。
并且因为 pythonbool
是int
无论如何的子类,True
并且False
可以强制转换为int
.
推荐阅读
- angular - 如何在 Angular 应用程序初始化之前进行 http 重定向?
- javascript - 如何在反应原生导航 v5 中返回另一个堆栈?
- java - AAPT:错误:格式不正确(无效令牌)
- reactjs - React typescript useParams() 总是在 useEffect 中返回 undefined
- encryption - 有没有一种快速的方法可以在 rot 算法中找到移位值
- java - 在 Protege 中导入外部库?
- c++ - 无法将参数 1 从“_Value_type”转换为“swo::tree”
- javascript - 如何在 Angular 中重新加载组件而不重新加载整个页面
- java - 在 Linux(Jboss) 中部署的 Web 服务无法从 Wndows 中的 WebLogic12C 访问
- c++ - 在布尔上下文中使用具有非类型模板参数包的概念