Ich versuche zu verwenden und zu beschleunigen Phantasie Indexierung zu "Join" zwei Arrays und Summe über eine der Achsen der Ergebnisse.Fast (er) numpy fancy Indexing und Reduktion?
Etwas wie folgt aus:
$ 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
Gibt es eine einfache Möglichkeit, die Aussage in In [5]
zu beschleunigen? Sollte ich mit OpenMP gehen und so etwas wie scipy.weave
oder Cython
prange
?
Eine weitere verwandte Frage ist, wie würde ich 'Pandas' verwenden, um das Gleiche zu tun? – npinto
Numpy macht das bei C-Geschwindigkeit, also wirst du es wahrscheinlich nicht viel schneller mit Weben beschleunigen können. – reptilicus