回答編集履歴

4

修正

2020/05/17 14:04

投稿

tiitoi
tiitoi

スコア21956

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 配列の [] にその配列と同じ大きさのブール型の配列を渡すと、True の位置の要素だけ抽出されます。(boolean indexing という機能です。)
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 もこれを利用して、boolean indexing のような機能を実現しています。
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と同値であることを利用すると、boolean indexing を使わなくても、この bool 配列の sum() をとれば、それが値が `i` の要素数になりますね。
91
+ `dice_try == i` で値が `i` の要素は True、そうでない要素は False の配列が取得できるので、True が1、False が0と同値であることを利用すると、bool indexing を使わなくても、この bool 配列の sum() をとれば、それが値が `i` の要素数になりますね。
92
92
 
93
93
 
94
94
 

3

修正

2020/05/17 14:04

投稿

tiitoi
tiitoi

スコア21956

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

修正

2020/05/17 14:03

投稿

tiitoi
tiitoi

スコア21956

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

修正

2020/05/17 14:00

投稿

tiitoi
tiitoi

スコア21956

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
- どちらも numpy の機能です。
13
+ numpy 配列 [] にその配列と同じ大きさのブール型の配列を渡すと、True の位置の要素だけ抽出されます。(boolean indexing という機能です。)
14
14
 
15
15
 
16
16