Я пытаюсь использовать и ускорить причудливую индексацию, чтобы «объединить» два массива и суммировать по одной из осей результатов.
Что-то вроде этого:
$ 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
или prange
Cython
?
pandas
, чтобы сделать то же самое? - person npinto   schedule 03.08.2012