Articles of numba

Dividir un dataframe en matrices o series con nombres correspondientes (luego se combinan)

Digamos que tengo un dataframe con columnas x e y. Me gustaría dividirlo automáticamente en matrices (o series) que tengan los mismos nombres que las columnas, procesar los datos y luego volver a unirlos. Es bastante sencillo hacer esto manualmente: x, y = df.x, df.y z = x + y # in actual use case, […]

Uso de numba para la similitud de coseno entre un vector y filas en un matix

Encontré esta idea usando numba para un cálculo rápido de la similitud del coseno import numba @numba.jit(target=’cpu’, nopython=True) def fast_cosine(u, v): m = u.shape[0] udotv = 0 u_norm = 0 v_norm = 0 for i in range(m): if (np.isnan(u[i])) or (np.isnan(v[i])): continue udotv += u[i] * v[i] u_norm += u[i] * u[i] v_norm += v[i] […]

corriendo librosa y numba en raspberry pi 3

Estoy tratando de ejecutar librosa en mi Raspberry pi 3. Después de horas de búsqueda en Internet, finalmente pude instalarlo, pero aún así produce un error cuando bash importarlo. Primero, tuve problemas para instalar la dependencia llvmlite. Finalmente lo instalé con el siguiente código: conda install -c numba llvmlite Yo uso Python 3.4 build con […]

Optimizar doble bucle en python

Estoy tratando de optimizar el siguiente bucle: def numpy(nx, nz, c, rho): for ix in range(2, nx-3): for iz in range(2, nz-3): a[ix, iz] = sum(c*rho[ix-1:ix+3, iz]) b[ix, iz] = sum(c*rho[ix-2:ix+2, iz]) return a, b Probé diferentes soluciones y descubrí que usar numba para calcular la sum de los resultados del producto a mejores resultados: […]

numba – guvectorize es muy lento en comparación con jit

Estaba experimentando con @jit y @guvectorize de @jit y @guvectorize que @guvectorize es considerablemente más lento que @jit . Por ejemplo, tengo el siguiente código que calcula el promedio móvil variable: import numpy as np from numba import * @guvectorize([‘void(float64[:], float64[:], float64[:])’], ‘(n),()->(n)’) def sma(x, m, y): n = x.shape[0] mi = int(m) y[:] *= […]

¿Por qué Numba no mejora esta iteración …?

Estoy probando Numba para acelerar una función que calcula una probabilidad condicional mínima de ocurrencia conjunta. import numpy as np from numba import double from numba.decorators import jit, autojit X = np.random.random((100,2)) def cooccurance_probability(X): P = X.shape[1] CS = np.sum(X, axis=0) #Column Sums D = np.empty((P, P), dtype=np.float) #Return Matrix for i in range(P): for […]

Optimizando dict de conjunto de tupla de ints con Numba?

Estoy aprendiendo a usar Numba (aunque ya estoy bastante familiarizado con Cython). ¿Cómo debo ir para acelerar este código? Observe que la función devuelve un dictado de conjuntos de dos tuplas de entradas. Estoy usando el cuaderno de IPython. Preferiría Numba sobre Cython. @autojit def generateadj(width,height): adj = {} for y in range(height): for x […]

Encontrando vecinos más cercanos a una tesellación triangular.

Tengo una teselación triangular como la que se muestra en la figura. Dado el número N de triangularjs en la teselación, tengo una matriz NX 3 X 3 que almacena las coordenadas (x, y, z) de los tres vértices de cada triángulo. Mi objective es encontrar para cada triángulo el triángulo vecino que comparte el […]

¿Por qué este código numba es 6 veces más lento que el código numpy?

¿Hay alguna razón por la que el siguiente código se ejecute en 2s, def euclidean_distance_square(x1, x2): return -2*np.dot(x1, x2.T) + np.expand_dims(np.sum(np.square(x1), axis=1), axis=1) + np.sum(np.square(x2), axis=1) mientras que el siguiente código numba se ejecuta en 12s? @jit(nopython=True) def euclidean_distance_square(x1, x2): return -2*np.dot(x1, x2.T) + np.expand_dims(np.sum(np.square(x1), axis=1), axis=1) + np.sum(np.square(x2), axis=1) Mi x1 es una matriz […]

Cuda: biblioteca nvvm no encontrada

Estoy intentando ejecutar el siguiente código, pero se informa de un error: NvvmSupportError: libNVVM no se puede encontrar. conda install cudatoolkit : library nvvm no encontrado Mi entorno de desarrollo es: Ubuntu 17.04, Spyder / Python3.5 y lo he instalado a través de conda (numba y cudatoolkit). GPU Nvidia (GTX 1070 y GTX 1060). import […]