【发布时间】:2018-06-03 21:40:23
【问题描述】:
这里是python的新手。我有以下示例数组:
a = [0,0,1,1,0,0,1,1,2,2,3,3,4,4,0,0]
我想根据连续出现的唯一值对数组进行标记和切片,即连续出现的相同元素将被分配相同的标签,否则将分配不同的标签。这是在不需要用zeros 分隔来分配不同标签的情况下完成的,就像使用scipy.ndimage.label 之类的东西一样。
因此,scipy.ndimage.label 的输出不是我所期望的:
lbl = label(a)
lbl = [0,0,1,1,0,0,2,2,2,2,2,2,2,2,0,0]
如您所见,它将[...,1,1,2,2,3,3,4,4,...] 的整个序列组合为一个标签,而不是四个唯一标签。而我想要的是这样的:
lbl = [0,0,1,1,0,0,2,2,3,3,4,4,5,5,0,0]
我是否错过了该功能的某些内容或有其他方法可以做到这一点?
【问题讨论】:
-
根据我的理解进行了编辑以使其清楚。如果需要,请随时进一步编辑。
标签: python arrays numpy scipy label