1 回答
TA贡献1804条经验 获得超7个赞
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)
>>> a
array([None, None, None, None], dtype=object)
>>> a[:] = l
>>> a
array([(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]))
添加回答
举报