回答編集履歴
2
修正
answer
CHANGED
@@ -9,12 +9,12 @@
|
|
9
9
|
ret = [v[0] for v in B.most_common()] # 要素を要素数順に列挙
|
10
10
|
print(ret) # [7, 1, 4, 2, 3, 5, 6]
|
11
11
|
```
|
12
|
-
numpyのみでやるなら以下でできます。ただし同数の順序は
|
12
|
+
numpyのみでやるなら以下でできます。ただし同数の順序は出現の逆順になります。(6,5,3,2)
|
13
13
|
参考:[numpyでソート後配列のインデックスを取得](https://www.dogrow.net/python/blog63/)
|
14
14
|
```Python
|
15
15
|
import numpy as np
|
16
16
|
X = np.array([1,2,3,4,4,4,4,5,6,7,7,7,7,7,7,7,7,7,1,1,1,1])
|
17
17
|
num,cnt = np.unique(X,return_counts=True)
|
18
|
-
ret = num[np.argsort(cnt)[-1::-1]]
|
18
|
+
ret = num[np.argsort(cnt, type='stable')[-1::-1]]
|
19
19
|
print(ret) # [7 1 4 6 5 3 2]
|
20
20
|
```
|
1
追加
answer
CHANGED
@@ -8,4 +8,13 @@
|
|
8
8
|
B = Counter(A)
|
9
9
|
ret = [v[0] for v in B.most_common()] # 要素を要素数順に列挙
|
10
10
|
print(ret) # [7, 1, 4, 2, 3, 5, 6]
|
11
|
+
```
|
12
|
+
numpyのみでやるなら以下でできます。ただし同数の順序は不定になるようです(6,5,3,2)
|
13
|
+
参考:[numpyでソート後配列のインデックスを取得](https://www.dogrow.net/python/blog63/)
|
14
|
+
```Python
|
15
|
+
import numpy as np
|
16
|
+
X = np.array([1,2,3,4,4,4,4,5,6,7,7,7,7,7,7,7,7,7,1,1,1,1])
|
17
|
+
num,cnt = np.unique(X,return_counts=True)
|
18
|
+
ret = num[np.argsort(cnt)[-1::-1]]
|
19
|
+
print(ret) # [7 1 4 6 5 3 2]
|
11
20
|
```
|