Skip to main content
 首页 » 编程设计

python之计算 numpy 矩阵中 true 的周围(python)

2025年05月04日19xiaohuochai

我想做一个类似扫雷的东西

输入矩阵:

matrix = [[true, false, false], 
          [false, true, false], 
          [false, false, false]] 

如果场上有炸弹,我不认为炸弹在周围。

我考虑过用 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') 

我们得到了准确的结果:

res 
array([[1, 2, 1], 
       [2, 1, 1], 
       [1, 1, 1]])