Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 标记数组中的唯一行_Python_Numpy - Fatal编程技术网

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
看起来使用“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))

看起来使用“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库,如果好的话,我可以试一试。我不知道这个图书馆。