2D相当于numpy.unique

时间:2016-07-19 13:59:09

标签: python arrays numpy

我在Nx2 numpy.ndarray中有一组离散的坐标。

我想获得每个独特坐标集的计数和索引。 numpy.unique正是这样做的,但是对于标量元素。

使用numpy吗?

有一些干净的方法吗?

示例:

#input
coor = np.array([[10,10],[12,9],[10,5],[12,9]]) 
#output
unique_count = np.array([1,2,1])
unique_index = np.array([0,1,2]) #1 could also be 3

编辑: unique count会给出每个唯一值的计数,即:[10,10]中的1个,[12,9]中的2个和[10,5]中的1个。然后,人们可以找到与coor[unique_index]

对应的值

1 个答案:

答案 0 :(得分:1)

您可以使用.count().index()列表的方法

coor = np.array([[10, 10], [12, 9], [10, 5], [12, 9]])
coor_tuple = [tuple(x) for x in coor]
unique_coor = sorted(set(coor_tuple), key=lambda x: coor_tuple.index(x))
unique_count = [coor_tuple.count(x) for x in unique_coor]
unique_index = [coor_tuple.index(x) for x in unique_coor]