Articles of optimización de

¿Es posible establecer la marca python -O (optimizar) dentro de un script?

Me gustaría establecer el indicador de optimización ( python -O myscript.py ) en el tiempo de ejecución dentro de un script de python basado en un argumento de línea de comando al script como myscript.py –optimize o myscript –no-debug . Me gustaría omitir afirmaciones sin dejar de lado todas. O hay una mejor manera de […]

Forma rápida de eliminar algunos elementos de una lista / cola

Este es un seguimiento de una pregunta similar que plantea la mejor manera de escribir for item in somelist: if determine(item): code_to_remove_item Y parece que el consenso fue en algo como somelist[:] = [x for x in somelist if not determine(x)] Sin embargo, creo que si solo está eliminando algunos elementos, la mayoría de los […]

Python: Encontrando múltiples raíces de ecuaciones no lineales

Asume la siguiente función: f(x) = x * cos(x-4) Con x = [-2.5, 2.5] esta función cruza 0 en f(0) = 0 y f(-0.71238898) = 0 . Esto se determinó con el siguiente código: import math from scipy.optimize import fsolve def func(x): return x*math.cos(x-4) x0 = fsolve(func, 0.0) # returns [0.] x0 = fsolve(func, -0.75) […]

La copia profunda () es extremadamente lenta.

Tengo un estado de juego en Python con aproximadamente 1000 objetos (sistemas planetarios + estrellas + planetas), y necesito copiarlo y aplicarle un montón de transformaciones cuando se lo solicite. Sin embargo, en aproximadamente 1 solicitud / segundo, esto ocupa el 24.63% de mi tiempo de ejecución . ¿Cómo puedo hacerlo ir rápido? Tenga en […]

Entendiendo el bucle while en Tensorflow

Estoy usando la API de Python para Tensorflow . Estoy tratando de implementar la función de Rosenbrock que figura a continuación sin el uso de un bucle Python: Mi implementación actual es la siguiente: def rosenbrock(data_tensor): columns = tf.unstack(data_tensor) summation = 0 for i in range(1, len(columns) – 1): first_term = tf.square(tf.subtract(columns[i + 1], tf.square(columns[i]))) […]

Recogida de basura de python

He creado un código de Python que crea un objeto en un bucle y en cada iteración sobrescribe este objeto con uno nuevo del mismo tipo. Esto se realiza 10.000 veces, y Python ocupa 7 MB de memoria cada segundo hasta que se utiliza mi RAM de 3 gb. ¿Alguien sabe de una manera de […]

Equivalencia de Python a funciones en línea o macros

Me di cuenta de que haciendo x.real*x.real+x.imag*x.imag es tres veces más rápido que hacerlo abs(x)**2 donde x es una matriz de números de números complejos. Para la legibilidad del código, podría definir una función como def abs2(x): return x.real*x.real+x.imag*x.imag que todavía es mucho más rápido que abs (x) ** 2, pero está al costo de […]

La forma más eficiente de calcular el perfil radial.

Necesito optimizar esta parte de una aplicación de procesamiento de imágenes. Es básicamente la sum de los píxeles agrupados por su distancia desde el punto central. def radial_profile(data, center): y,x = np.indices((data.shape)) # first determine radii of all pixels r = np.sqrt((x-center[0])**2+(y-center[1])**2) ind = np.argsort(r.flat) # get sorted indices sr = r.flat[ind] # sorted radii […]

¿Por qué no usar siempre psyco para el código Python?

psyco parece ser bastante útil para optimizar el código de Python, y lo hace de una manera muy poco intrusiva. Por lo tanto, uno tiene que preguntarse. Suponiendo que siempre estás en una architecture x86 (que es donde se ejecutan la mayoría de las aplicaciones en estos días), ¿por qué no siempre usas psyco para […]

¿Cómo puedo hacer que mi implementación de cobertura codiciosa sea más rápida?

Se me ocurrió la siguiente implementación para Greedy Set Cover después de mucha discusión sobre mi pregunta original aquí . A partir de la ayuda que recibí, codifiqué el problema en una “Cobertura de conjunto codicioso” y, después de recibir más ayuda aquí , se me ocurrió la siguiente implementación. Estoy agradecido a todos por […]