回答編集履歴

2

コメント追加

2020/04/27 00:59

投稿

Kenji.Noguchi
Kenji.Noguchi

スコア358

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
- あり、ignoring NaNsと言うNaNは敢えて無視しています。skipnaがデフォルトでTrueなのでFalseにすればNaNが返るらしいことが分かりま。試してみた結果
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

コメント追加

2020/04/27 00:59

投稿

Kenji.Noguchi
Kenji.Noguchi

スコア358

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