比较两个 Numpy 数组

Som*_*jee 0 python-3.x

假设我有两个 Numpy 数组 A 和 B,我想看看是否有sorted(A) == sorted(B)?例如:如果A = [5,3,2,4]B = [3,2,5,4],那么我必须得到真。这样做的最快方法是什么?

ale*_*rst 5

来自收藏品的 Counter 怎么样

>>> import collections
>>> a = collections.Counter([1,1,2,3])
>>> b = collections.Counter([3,1,2])
>>> a == b
False

>>> a = collections.Counter([1,1,2,3])
>>> b = collections.Counter([3,1,2,1])
>>> a == b
True
Run Code Online (Sandbox Code Playgroud)

每个列表的构建时间为 O(n)

编辑:如果有人不熟悉计数器的作用。它遍历列表并创建本质上是值到该值出现次数的字典映射。
因此,一旦我们创建了这些a = {'1': 2, '2': 1...}需要 O(n) 时间的形式的字典,我们就可以比较这两个也需要 O(n) 时间的字典。