numpy コードの一部をプロファイリングすると、これら 2 つの関数内でほとんどの時間を費やしていることがわかります
numpy/matrixlib/defmatrix.py.__getitem__:301
numpy/matrixlib/defmatrix.py.__array_finalize__:279
Numpy のソースは次のとおりです。
- https://github.com/numpy/numpy/blob/master/numpy/matrixlib/defmatrix.py#L301
- https://github.com/numpy/numpy/blob/master/numpy/matrixlib/defmatrix.py#L279
質問1:
__getitem__
のようなものを使用するたびに呼び出されるようで、整数ではなくスライスのmy_array[arg]
場合はより高価になっています。arg
配列スライスの呼び出しを高速化する方法はありますか?
例えば
for i in range(idx): res[i] = my_array[i:i+10].mean()
質問2:
正確にはいつ__array_finalize__
呼び出され、この関数の呼び出し数を減らすことでどのようにスピードアップできますか?
ありがとう!