Python 标记数组中的唯一行
假设我有一个Python 标记数组中的唯一行,python,numpy,Python,Numpy,假设我有一个5x3numpy数组 5 x 3 Array: 4 5 6 6 7 4 5 6 6 7 1 1 2 3 5 1 1 2 3 5 4 5 6 7 8 现在输出应该如下所示,因为前两行是相同的,因此将其设为集群0,第三行,第四行是相同的,因此集群1,最后一行进入集群2 0 0 1 1 2 看起来使用“sreturn\u inverse您可以得到您想要的: a = np.array([[ [4, 5, 6, 6, 7], [4, 5, 6, 6, 7], [1,
5x3
numpy数组
5 x 3 Array:
4 5 6 6 7
4 5 6 6 7
1 1 2 3 5
1 1 2 3 5
4 5 6 7 8
现在输出应该如下所示,因为前两行是相同的,因此将其设为集群0,第三行,第四行是相同的,因此集群1,最后一行进入集群2
0
0
1
1
2
看起来使用“sreturn\u inverse
您可以得到您想要的:
a = np.array([[
[4, 5, 6, 6, 7],
[4, 5, 6, 6, 7],
[1, 1, 2, 3, 5],
[1 ,1, 2, 3, 5],
[4, 5, 6, 7, 8]]])
np.unique(a, axis=1, return_inverse=True)
(array([[[1, 1, 2, 3, 5],
[4, 5, 6, 6, 7],
[4, 5, 6, 7, 8]]]),
array([1, 1, 0, 0, 2], dtype=int64))
看起来使用“s
return\u inverse
您可以得到您想要的:
a = np.array([[
[4, 5, 6, 6, 7],
[4, 5, 6, 6, 7],
[1, 1, 2, 3, 5],
[1 ,1, 2, 3, 5],
[4, 5, 6, 7, 8]]])
np.unique(a, axis=1, return_inverse=True)
(array([[[1, 1, 2, 3, 5],
[4, 5, 6, 6, 7],
[4, 5, 6, 7, 8]]]),
array([1, 1, 0, 0, 2], dtype=int64))
到目前为止你试过什么?这似乎是一个简单的for循环或
itertools.groupby()
(或两者的组合)所能做到的。我不知道,我在想一个乏味的方法,检查前一行并在循环中进一步进行。输出似乎不太有趣。您如何将这些值与行匹配?让我更正我自己的疑问。我认为,更新后的问题有点像itertools库,如果好的话,我可以试一试。我不知道这个图书馆。到目前为止你试过什么?这似乎是一个简单的for循环或itertools.groupby()
(或两者的组合)所能做到的。我不知道,我在想一个乏味的方法,检查前一行并在循环中进一步进行。输出似乎不太有趣。您如何将这些值与行匹配?让我更正我自己的疑问。我认为,更新后的问题有点像itertools库,如果好的话,我可以试一试。我不知道这个图书馆。