如何获取N维np数组中唯一数组元素的数量?

我有一个包含 str 值的 2D np 数组。我想获得组成这个二维数组的唯一数组(行)的计数。


这将是示例输入:


array([[A, B, C],

       [A, B, C],

       [C, E, F],

       [F, J, K]])

我希望能够获得每一行的唯一计数:


[A, B, C] -> 2

[C, E, F] -> 1

[F, J, K] -> 1

谢谢。


RISEBY
浏览 117回答 1
1回答

三国纷争

axis=0对于列表列表,您可以通过使用选项(指定行)以及numpy.unique()函数和选项来获取行数return_counts=True:>>> a = np.array([(1,2,3),(1,2,3),(3,4,5),(5,6,7)])>>> np.unique(a, return_counts=True, axis=0)(array([[1, 2, 3],       [3, 4, 5],       [5, 6, 7]]), array([2, 1, 1]))第一个返回值是唯一行,第二个返回值是这些行的计数。如果没有该return_counts=True选项,您将只能获得第一个返回值。如果没有该axis=0选项,整个数组将被展平以计算唯一元素的数量。axis=0指定应展平行(如果它们已经超过 1D),然后将其视为唯一值。如果您可以使用元组而不是行列表,那么您可以numpy.unique()与 axis 选项一起使用。这篇文章解释了如何使用 numpy 数组的元组列表。放在一起,它应该看起来像这样:>>> l = [(1,2,3),(1,2,3),(3,4,5),(5,6,7)]>>> a = np.empty(len(l), dtype=object)>>> aarray([None, None, None, None], dtype=object)>>> a[:] = l>>> aarray([(1, 2, 3), (1, 2, 3), (3, 4, 5), (5, 6, 7)], dtype=object)>>> np.unique(a, return_counts=True)(array([(1, 2, 3), (3, 4, 5), (5, 6, 7)], dtype=object), array([2, 1, 1]))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python