回答編集履歴

1

2023/11/19 14:36

投稿

melian
melian

スコア20673

test CHANGED
@@ -1,3 +1,7 @@
1
+ > 例えば以下の4×5のndarrayだった場合、上位20%であれば該当する要素は 4 4 4 4 なので平均は4と出力し、上位25%では 4 4 4 4 3 なので平均は3.8と出力するイメージです
2
+
3
+ 上位25%は `[4, 4, 4, 4, 4]` になりますので、平均値は `4.0` になります。
4
+
1
5
  ```python
2
6
  import numpy as np
3
7
 
@@ -9,11 +13,10 @@
9
13
  ])
10
14
  size = np.prod(arr.shape)
11
15
 
12
- # 上位20%
13
- print(np.mean(np.sort(arr.ravel())[-(size//5+1):]))
16
+ print(np.mean(np.sort(arr.ravel())[-int(np.ceil(size*0.2)):]))
14
17
  # 上位25%
15
- print(np.mean(np.sort(arr.ravel())[-(size//4+1):]))
18
+ print(np.mean(np.sort(arr.ravel())[-int(np.ceil(size*0.25)):]))
16
19
 
17
20
  # 4.0
18
- # 3.8333333333333335
21
+ # 4.0
19
22
  ```