Articles of optimización de

Acelerando el código python con cython.

Tengo una función que básicamente hace muchas llamadas a una función hash definida simple y prueba para ver cuándo encuentra un duplicado. Tengo que hacer muchas simulaciones con él, así que me gustaría que fuera lo más rápido posible. Estoy tratando de usar cython para hacer esto. El código de cython se llama actualmente con […]

Acumulando eficientemente una colección de matrices dispersas.

Tengo una colección de O (N) NxN scipy.sparse.csr_matrix , y cada matriz dispersa tiene un orden de N elementos establecido. Quiero agregar todas estas matrices juntas para obtener una matriz numpy NxN regular. (N es del orden de 1000). La disposición de los elementos distintos de cero dentro de las matrices es tal que la […]

Optimización discreta en python

Estoy intentando usar el paquete scipy.optimize para optimizar un problema de optimización discreta (optimización global). Acc to the doc, recocido simulado implementado en scipy.optimize.anneal debería ser una buena opción para el mismo. Pero no estoy seguro de cómo forzar al optimizador a buscar solo valores enteros del espacio de búsqueda. ¿Alguien puede ayudar? Un ejemplo […]

Intercambiando las dimensiones de una matriz numpy

Me gustaría hacer lo siguiente: for i in dimension1: for j in dimension2: for k in dimension3: for l in dimension4: B[k,l,i,j] = A[i,j,k,l] Sin el uso de bucles. Al final, tanto A como B contienen la misma información pero se indexan de manera diferente. Debo señalar que las dimensiones 1,2,3 y 4 pueden ser […]

Python: optimizando, o al menos obteniendo nuevas ideas para un generador de árbol

He escrito un progtwig que genera expresiones aleatorias y luego utiliza técnicas genéticas para seleccionar el estado físico. La siguiente parte del progtwig genera la expresión aleatoria y la almacena en una estructura de árbol. Como esto puede ser llamado miles de millones de veces durante una carrera, pensé que debería ser optimizado por el […]

¿Es más rápido iterar una pequeña lista dentro de una statement any ()?

Considere la siguiente operación en el límite de iterables de baja longitud, d = (3, slice(None, None, None), slice(None, None, None)) In [215]: %timeit any([type(i) == slice for i in d]) 1000000 loops, best of 3: 695 ns per loop In [214]: %timeit any(type(i) == slice for i in d) 1000000 loops, best of 3: […]

¿Cuál es la forma más independiente de la versión de plataforma y Python de hacer un bucle rápido para usar en Python?

Estoy escribiendo una aplicación científica en Python con un bucle muy intensivo en procesadores en su núcleo. Me gustaría optimizar esto en la medida de lo posible, con el mínimo inconveniente para los usuarios finales, quienes probablemente lo usarán como una colección no comstackda de scripts de Python, y usarán Windows, Mac y (principalmente Ubuntu) […]

¿Os.walk aprovecha el tipo de archivo devuelto por el sistema operativo para mayor eficiencia?

La función os.walk devuelve listas separadas para directorios y archivos. Las llamadas al sistema operativo subyacente en muchos sistemas operativos comunes como Windows y Linux devuelven un tipo de archivo o marca que especifica si cada entrada de directorio es un archivo o un directorio; sin este indicador, es necesario volver a consultar el sistema […]

Método optimizado para calcular la distancia de coseno en Python

Escribí un método para calcular la distancia de coseno entre dos matrices: def cosine_distance(a, b): if len(a) != len(b): return False numerator = 0 denoma = 0 denomb = 0 for i in range(len(a)): numerator += a[i]*b[i] denoma += abs(a[i])**2 denomb += abs(b[i])**2 result = 1 – numerator / (sqrt(denoma)*sqrt(denomb)) return result Ejecutarlo puede ser […]

Python, revisa y acelera el algoritmo A *

He implementado un algoritmo A * para encontrar la ruta más corta entre dos puntos en un mundo de cuadrícula. Para grandes longitudes de ruta, el algoritmo lleva mucho tiempo. Primero me preguntaba si mi implementación es correcta y si podría llevarse a cabo alguna optimización. Los argumentos para el algoritmo aStar , son la […]