回答編集履歴
4
修正
test
CHANGED
@@ -6,11 +6,11 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
まず、`dice_try == i` が評価されて、dice_try の値が i の要素は True、そうでない要素は False の dice_try と同じ大きさの bool 型の配列が返ります。
|
9
|
+
まず、`dice_try == i` が評価されて、dice_try の値が `i` の要素は True、そうでない要素は False の dice_try と同じ大きさの bool 型の配列が返ります。
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
numpy 配列の [] にその配列と同じ大きさの
|
13
|
+
numpy 配列の [] にその配列と同じ大きさの bool 型の配列を渡すと、True の位置の要素だけ抽出されます。(bool indexing という機能です。)
|
14
14
|
|
15
15
|
|
16
16
|
|
@@ -54,7 +54,7 @@
|
|
54
54
|
|
55
55
|
リストやタプルだとそうなりますが、numpy はそれ以外にもいろいろ指定方法があります。
|
56
56
|
|
57
|
-
`__getitem__()` という関数を実装すると、自作したオブジェクトに対して、[] が呼び出された場合の挙動を制御できます。numpy もこれを利用して、bool
|
57
|
+
`__getitem__()` という関数を実装すると、自作したオブジェクトに対して、[] が呼び出された場合の挙動を制御できます。numpy もこれを利用して、bool indexing のような機能を実現しています。
|
58
58
|
|
59
59
|
|
60
60
|
|
@@ -88,7 +88,7 @@
|
|
88
88
|
|
89
89
|
|
90
90
|
|
91
|
-
`dice_try == i` で値が `i` の要素は True、そうでない要素は False の配列が取得できるので、True が1、False が0と同値であることを利用すると、bool
|
91
|
+
`dice_try == i` で値が `i` の要素は True、そうでない要素は False の配列が取得できるので、True が1、False が0と同値であることを利用すると、bool indexing を使わなくても、この bool 配列の sum() をとれば、それが値が `i` の要素数になりますね。
|
92
92
|
|
93
93
|
|
94
94
|
|
3
修正
test
CHANGED
@@ -81,3 +81,31 @@
|
|
81
81
|
print(vec[1]) # B
|
82
82
|
|
83
83
|
```
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
## 参考
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
`dice_try == i` で値が `i` の要素は True、そうでない要素は False の配列が取得できるので、True が1、False が0と同値であることを利用すると、boolean indexing を使わなくても、この bool 配列の sum() をとれば、それが値が `i` の要素数になりますね。
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
```python
|
96
|
+
|
97
|
+
import numpy as np
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
steps = 100
|
102
|
+
|
103
|
+
dice_try = np.random.choice(dice, steps)
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
p = [(dice_try == i).sum() for i in range(1, 7)]
|
108
|
+
|
109
|
+
print(p) # [16, 17, 15, 23, 12, 17]
|
110
|
+
|
111
|
+
```
|
2
修正
test
CHANGED
@@ -26,11 +26,19 @@
|
|
26
26
|
|
27
27
|
a = np.array([3, 2, 3, 4, 4, 4, 5, 4, 2, 1, 4, 4, 5, 3, 1, 1, 6, 5, 5, 4])
|
28
28
|
|
29
|
+
|
30
|
+
|
31
|
+
# dice_try の値が i の要素は True、そうでない要素は False の dice_try と同じ大きさの bool 型の配列ができる
|
32
|
+
|
29
33
|
print(a == 1)
|
30
34
|
|
31
35
|
# [False False False False False False False False False True False False
|
32
36
|
|
33
37
|
# False False True True False False False False]
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
# これを numpy 配列の [] にわたすと、True の要素だけ抽出される。
|
34
42
|
|
35
43
|
print(a[a == 1])
|
36
44
|
|
1
修正
test
CHANGED
@@ -8,9 +8,9 @@
|
|
8
8
|
|
9
9
|
まず、`dice_try == i` が評価されて、dice_try の値が i の要素は True、そうでない要素は False の dice_try と同じ大きさの bool 型の配列が返ります。
|
10
10
|
|
11
|
-
この bool 型の配列を `[]` の中に入れると、True の位置の要素だけ抽出されます。(boolean indexing という機能です。)
|
12
11
|
|
12
|
+
|
13
|
-
|
13
|
+
numpy 配列の [] にその配列と同じ大きさのブール型の配列を渡すと、True の位置の要素だけ抽出されます。(boolean indexing という機能です。)
|
14
14
|
|
15
15
|
|
16
16
|
|