回答編集履歴

1

説明追加

2021/05/10 09:11

投稿

ppaul
ppaul

スコア24670

test CHANGED
@@ -8,11 +8,23 @@
8
8
 
9
9
  ```
10
10
 
11
+ このあたりの詳しいことは、[3.3.8. 数値型をエミュレートする](https://docs.python.org/ja/3/reference/datamodel.html?highlight=__add__#emulating-numeric-types)をお読みください。
12
+
13
+
14
+
11
15
  Lily_1007さんのご質問ではdxはリストのように読めますが、リストだと&よりも前に、abs(dx)でエラーになります。abs(dx)が正しく動くのであれば、dxはnumpyのndarrayである可能性が高いので、そのように仮定して説明します。
12
16
 
13
17
 
14
18
 
19
+ ```explanation
20
+
15
- ndarrayの場合、&演算子は要素ごとの論理積になります。
21
+ ndarrayの場合、&演算子は要素ごとの論理積になります。つまり、numpyの開発者が、ndarrayでの__and__を要素ごとの論理積として定義したと言うことです。
22
+
23
+ ```
24
+
25
+
26
+
27
+ 実行してみると以下のようになっています。
16
28
 
17
29
 
18
30
 
@@ -47,6 +59,10 @@
47
59
  [ True True True False False False False False False False False]
48
60
 
49
61
  ```
62
+
63
+
64
+
65
+ これを元に、Lily_1007さんの答えが合っているかどうか検証してみましょう。
50
66
 
51
67
 
52
68