python - 如何有效地计算到 numpy 中掩码中最近的 1 的距离?

标签 python algorithm numpy scipy

在 numpy 中,我有一个由 1 和 0 组成的二维数组。我需要计算一个新数组(相同维度),其中每个元素都包含距离掩码数组中相应点最近的 1 的距离。

例如

a=np.array(
[[1,1,0],
[1,0,0],
[1,0,0]])

我需要 b 看起来像这样:

array([[0,0,1],
       [0,1,1.41],
       [0,1,2]])

附言。我将在非常大的阵列上执行此操作,因此效率越高越好! 谢谢!

最佳答案

您正在寻找 MATLAB 的 bwdist 的等价物;查看this SO question更多细节。简短的回答是使用 scipy.ndimage.morphology.distance_transform_edt .

关于python - 如何有效地计算到 numpy 中掩码中最近的 1 的距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9669841/

相关文章:

algorithm - Matlab 中的滑动窗口

c++ - 在 OpenGl 核心中使用单个像素绘制一条线

找到正确索引的算法

python - 有没有比 np.diff 更快的替代品?

python - 如何从 unix 时间戳创建 numpy.datetime64 对象并将时区设置为 UTC?

python - 有没有一种简单的方法可以根据 .gitignore 规则匹配文件?

python - Firebase 数据库数据到 R

python - 如何从python的多处理池中打印出进程的进程名称

python - 如何使用 Python 将多个 Javascript 文件连接成一个文件

Python,将一系列 datetime64 转换为日期和分钟