質問編集履歴
3
解決
title
CHANGED
File without changes
|
body
CHANGED
@@ -41,4 +41,16 @@
|
|
41
41
|
ひとまずこれでaからのインデックスの抜き出しはできそうだと考えました。
|
42
42
|
で、この値を元にbにアプローチをかけようとしたのですが、
|
43
43
|
b[c[0]], b[c[1]], b[c[2]]といったやり方で抜き出し自体はできそうだと考えたのですが、
|
44
|
-
numpyにはより良い書き方があるのではないかと考えて質問に至った次第です。
|
44
|
+
numpyにはより良い書き方があるのではないかと考えて質問に至った次第です。
|
45
|
+
|
46
|
+
# (追記)解決しました
|
47
|
+
|
48
|
+
```
|
49
|
+
>>> a = np.array([3.0, 4.0, 8.0, 1.0, 6.0, 7.0, 2.0, 5.0])
|
50
|
+
>>> b = np.array([5.5, 3.5, 1.5, 6.5, 4.5, 2.5, 8.5, 7.5])
|
51
|
+
>>> idx = a.argsort()[::-1][:3]
|
52
|
+
>>> np.sum(b.argsort()[idx])
|
53
|
+
4
|
54
|
+
```
|
55
|
+
|
56
|
+
melianさんありがとうございましたm(_ _)m
|
2
誤字
title
CHANGED
File without changes
|
body
CHANGED
@@ -35,7 +35,7 @@
|
|
35
35
|
# (追記)途中までやったところ
|
36
36
|
|
37
37
|
```python
|
38
|
-
c = np.argsort(a)[::-1][0:
|
38
|
+
c = np.argsort(a)[::-1][0:3]
|
39
39
|
```
|
40
40
|
|
41
41
|
ひとまずこれでaからのインデックスの抜き出しはできそうだと考えました。
|
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -30,4 +30,15 @@
|
|
30
30
|
1は8.0, 7.0, 6.0の順が上位最大3値順に該当するのでそのインデックス順は2, 5, 4
|
31
31
|
2でインデックス順2, 5, 4は1.5, 2.5, 4.5がこの順で該当する
|
32
32
|
なので求めたい配列はnp.array([8.0*1.5, 7.0*2.5, 6.0*4.5])で
|
33
|
-
np.array([12.0, 17.5, 27.0])となる
|
33
|
+
np.array([12.0, 17.5, 27.0])となる
|
34
|
+
|
35
|
+
# (追記)途中までやったところ
|
36
|
+
|
37
|
+
```python
|
38
|
+
c = np.argsort(a)[::-1][0:2]
|
39
|
+
```
|
40
|
+
|
41
|
+
ひとまずこれでaからのインデックスの抜き出しはできそうだと考えました。
|
42
|
+
で、この値を元にbにアプローチをかけようとしたのですが、
|
43
|
+
b[c[0]], b[c[1]], b[c[2]]といったやり方で抜き出し自体はできそうだと考えたのですが、
|
44
|
+
numpyにはより良い書き方があるのではないかと考えて質問に至った次第です。
|