私は、2つの配列を「結合」し、結果の軸の1つを合計するために、ファンシーインデックスを使用して加速しようとしています。このようなファインダーのインデックス作成と縮小は高速ですか?
何か:
$ ipython
In [1]: import numpy as np
In [2]: ne, ds = 12, 6
In [3]: i = np.random.randn(ne, ds).astype('float32')
In [4]: t = np.random.randint(0, ds, size=(1e5, ne)).astype('uint8')
In [5]: %timeit i[np.arange(ne), t].sum(-1)
10 loops, best of 3: 44 ms per loop
はIn [5]
で声明を加速するための簡単な方法はありますか?私はOpenMPとか、scipy.weave
やCython
のprange
のようなものを使うべきですか?
もう1つの関連する質問は、同じことをするために「パンダ」をどうすればいいですか? – npinto
ナンシーはCスピードでそれをやっているので、おそらく織りでスピードをあげることはできません。 – reptilicus