我想做一个类似扫雷的东西
输入矩阵:
matrix = [[true, false, false],
[false, true, false],
[false, false, false]]
Run Code Online (Sandbox Code Playgroud)
如果场上有炸弹,我不会将其视为周围有炸弹。
我想过用 numpy convolve 来完成它,但我正在努力解决如何遍历矩阵并始终检查实际字段的左、上、右和下字段(在边框的情况下,我检查“空”字段,其中肯定是0)
这是一个使用以下解决方案scipy.signal.convolve2d :
import scipy
import numpy as np
# Input matrix, can be left as boolean
matrix = np.array([[True, False, False],
[False, True, False],
[False, False, False]])
# Our dougnut filter
W = np.array([[1, 1, 1],
[1, 0, 1],
[1, 1, 1]])
# Single convolve
res = convolve2d(matrix, W, 'same')
Run Code Online (Sandbox Code Playgroud)
我们得到准确的结果:
res
array([[1, 2, 1],
[2, 1, 1],
[1, 1, 1]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
762 次 |
| 最近记录: |