numpy.unique
函数允许在return_counts
为True
时返回唯一元素的计数。现在返回的元组包含两个数组,一个包含唯一元素,第二个包含计数数组,两个数组都按唯一元素排序。现在是否有一种方法按计数数组而不是唯一元素对两者进行排序?我的意思是,我知道如何通过困难的方法来做到这一点,但是否有一些简洁的单行或lambda功能可以处理这种情况?my_chr_list = ["a","a","a", "b", "c", "b","d", "d"]
unique_els, counts = np.unique(my_chr_list, return_counts=True)
print(unique_els, counts)
它会返回类似于这样的内容:
>>> (array(['a', 'b', 'c', 'd'],
dtype='<U1'), array([3, 2, 1, 2], dtype=int64))
然而,我想要的是:
>>> (array(['a', 'b', 'd', 'c'],
dtype='<U1'), array([3, 2, 2, 1], dtype=int64))
np.argsort(-count)
中的-count
是返回反向排序数组的索引。我在numpy文档中没有找到这个说明;使用负数索引列表数据结构通常会导致返回的顺序相反,这是一个经验法则吗?提前感谢您的回答。 - Sumax