質問編集履歴

3

解決

2021/11/20 08:31

投稿

shirai
shirai

スコア1290

test CHANGED
File without changes
test CHANGED
@@ -85,3 +85,27 @@
85
85
  b[c[0]], b[c[1]], b[c[2]]といったやり方で抜き出し自体はできそうだと考えたのですが、
86
86
 
87
87
  numpyにはより良い書き方があるのではないかと考えて質問に至った次第です。
88
+
89
+
90
+
91
+ # (追記)解決しました
92
+
93
+
94
+
95
+ ```
96
+
97
+ >>> a = np.array([3.0, 4.0, 8.0, 1.0, 6.0, 7.0, 2.0, 5.0])
98
+
99
+ >>> b = np.array([5.5, 3.5, 1.5, 6.5, 4.5, 2.5, 8.5, 7.5])
100
+
101
+ >>> idx = a.argsort()[::-1][:3]
102
+
103
+ >>> np.sum(b.argsort()[idx])
104
+
105
+ 4
106
+
107
+ ```
108
+
109
+
110
+
111
+ melianさんありがとうございましたm(_ _)m

2

誤字

2021/11/20 08:31

投稿

shirai
shirai

スコア1290

test CHANGED
File without changes
test CHANGED
@@ -72,7 +72,7 @@
72
72
 
73
73
  ```python
74
74
 
75
- c = np.argsort(a)[::-1][0:2]
75
+ c = np.argsort(a)[::-1][0:3]
76
76
 
77
77
  ```
78
78
 

1

追記

2021/11/20 07:51

投稿

shirai
shirai

スコア1290

test CHANGED
File without changes
test CHANGED
@@ -63,3 +63,25 @@
63
63
  なので求めたい配列はnp.array([8.0*1.5, 7.0*2.5, 6.0*4.5])で
64
64
 
65
65
  np.array([12.0, 17.5, 27.0])となる
66
+
67
+
68
+
69
+ # (追記)途中までやったところ
70
+
71
+
72
+
73
+ ```python
74
+
75
+ c = np.argsort(a)[::-1][0:2]
76
+
77
+ ```
78
+
79
+
80
+
81
+ ひとまずこれでaからのインデックスの抜き出しはできそうだと考えました。
82
+
83
+ で、この値を元にbにアプローチをかけようとしたのですが、
84
+
85
+ b[c[0]], b[c[1]], b[c[2]]といったやり方で抜き出し自体はできそうだと考えたのですが、
86
+
87
+ numpyにはより良い書き方があるのではないかと考えて質問に至った次第です。