回答編集履歴
2
コメント追加
test
CHANGED
@@ -142,7 +142,23 @@
|
|
142
142
|
|
143
143
|
|
144
144
|
|
145
|
+
とあり、ignoring NaNsと言うことでNaNは敢えて無視しています。
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
_get_valuesではmaskと言う入力したaと同じサイズの行列を作り、NaNに対してはTrueそれ以外はFalseをセットし、最後にnp.putmaskでmaskがTrueの要素は強制的に0にした値をnansumに返しています。Numpyにputmaskなんて関数があったんですね。知りませんでした。これでほぼ動作が全て解明されました。
|
150
|
+
|
151
|
+
|
152
|
+
|
153
|
+
```Python3
|
154
|
+
|
155
|
+
np.putmask(values, mask, fill_value)
|
156
|
+
|
157
|
+
```
|
158
|
+
|
159
|
+
|
160
|
+
|
145
|
-
と
|
161
|
+
ところでskipnaがデフォルトでTrueなのでFalseにすればNaNが返るらしいことが分かりましたので。試してみた結果
|
146
162
|
|
147
163
|
|
148
164
|
|
@@ -161,3 +177,7 @@
|
|
161
177
|
dtype: float64
|
162
178
|
|
163
179
|
```
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
以上ご参考まで。
|
1
コメント追加
test
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
既に回答は上がっていますし、sum()のドキュメントにも記述があるようですが、僕はちゃんと理由を突き止めたいので、ソースをいつも確認します。
|
2
|
+
|
3
|
+
|
4
|
+
|
1
5
|
PyCharmなどIDEを使っていれば、.sum()の定義へ簡単に飛べますので、答えにたどり着くまで探します。(バイナリのモジュールにたどり着いてソースが不明なこともありますが)
|
2
6
|
|
3
7
|
|
@@ -12,7 +16,7 @@
|
|
12
16
|
|
13
17
|
|
14
18
|
|
15
|
-
のsum()は
|
19
|
+
のsum()は関数を作る関数で定義されてる様子。
|
16
20
|
|
17
21
|
|
18
22
|
|