擅长:python、mysql、java
<p>在使用<code>OrderedDict</code>按观察数排序之前,可以使用<code>collections.defaultdict</code>:</p>
<pre><code>import numpy as np
from collections import defaultdict, OrderedDict
A = np.array([[1, 2, 3],
[1, 0, 0],
[1, 3, 0]])
d = defaultdict(list)
for idx, row in enumerate(A):
for i in set(row):
d[i].append(idx)
res = OrderedDict(sorted(d.items(), key=lambda x: len(x[1]), reverse=True))
print(res)
OrderedDict([(1, [0, 1, 2]),
(3, [0, 2]),
(0, [1, 2]),
(2, [0])])
</code></pre>