gpt4 book ai didi

python - 提取二进制 numpy 数组中的区域

转载 作者:行者123 更新时间:2023-12-05 04:30:09 25 4
gpt4 key购买 nike

我正在寻找一种方法来提取二进制 numpy 数组中的区域以放置不同的值,例如,对于以下数组:

x=[[0,1,1,0,0,0],
[0,1,1,0,0,0],
[0,1,0,0,0,0],
[0,0,0,1,1,0],
[0,0,1,1,1,0],
[0,0,0,0,0,0]]

预期结果:

x=[[0,2,2,0,0,0],
[0,2,2,0,0,0],
[0,2,0,0,0,0],
[0,0,0,3,3,0],
[0,0,3,3,3,0],
[0,0,0,0,0,0]]

最佳答案

使用scipy.ndimage.label :

x=[[0,1,1,0,0,0],
[0,1,1,0,0,0],
[0,1,0,0,0,0],
[0,0,0,1,1,0],
[0,0,1,1,1,0],
[0,0,0,0,0,0]]

a = np.array(x)

from scipy.ndimage import label
b = label(a)[0]

输出:

# b
array([[0, 1, 1, 0, 0, 0],
[0, 1, 1, 0, 0, 0],
[0, 1, 0, 0, 0, 0],
[0, 0, 0, 2, 2, 0],
[0, 0, 2, 2, 2, 0],
[0, 0, 0, 0, 0, 0]], dtype=int32)

从2开始标记:

b = (label(a)[0]+1)*a

输出:

array([[0, 2, 2, 0, 0, 0],
[0, 2, 2, 0, 0, 0],
[0, 2, 0, 0, 0, 0],
[0, 0, 0, 3, 3, 0],
[0, 0, 3, 3, 3, 0],
[0, 0, 0, 0, 0, 0]])

关于python - 提取二进制 numpy 数组中的区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72127260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com