Articles of optimización de

Mensaje de error al intentar minimizar una función con scipy usando jacobian

Al usar Python 3.6, estoy tratando de minimizar una función usando scipy.optimize.minimize . Mi problema de minimización como dos restricciones, y puedo encontrar una solución. Hasta ahora, tengo lo siguiente: import numpy as np from scipy.optimize import minimize array = np.array([[3.0, 0.25, 0.75], [0.1, 0.65, 2.50], [0.80, 2.5, 1.20], [0.0, 0.25, 0.15], [1.2, 2.40, 3.60]]) […]

¿Puedo vectorizar este código python?

He escrito este código de Python para obtener vecinos de una etiqueta (un conjunto de píxeles que comparten algunas propiedades comunes). Los vecinos para una etiqueta se definen como las otras tags que se encuentran en el otro lado del límite (las tags vecinas comparten un límite). Entonces, el código que escribí funciona, pero es […]

Activación del modo de optimización de Python a través del argumento de línea de comandos a nivel de script

Tengo un script que carga varios módulos para hacer su trabajo. Algunos de estos módulos están muy llenos de afirmaciones, lo suficiente como para potencialmente causar una desaceleración significativa en el uso real. (Estoy haciendo muchas operaciones que involucran la mutación de gráficos, así que hay muchas aserciones que se repiten en todo el gráfico […]

Optimizando el análisis de cadenas con Python

Tengo una cadena con el formato ‘AB(AB(DDC)C)A(BAAC)DAB(ABC)’ . Cada personaje representa un elemento ( A , B , C o D ). Entre paréntesis, a la derecha, está el hijo de cada elemento (que puede estar ausente). Por ejemplo, teniendo ‘AB(AB(DDC)C)A(BAAC)DA’ , el nivel superior sería AB (AB (DDC) C) A (BAAC) DA -> [A, […]

Velocidad de “sum” de comprensión en Python

Tenía la impresión de que usar una construcción de sum era mucho más rápido que ejecutar un bucle for. Sin embargo, en el siguiente código, el bucle for se ejecuta más rápido: import time Score = [[3,4,5,6,7,8] for i in range(40)] a=[0,1,2,3,4,5,4,5,2,1,3,0,5,1,0,3,4,2,2,4,4,5,1,2,5,4,3,2,0,1,1,0,2,0,0,0,1,3,2,1] def ver1(): for i in range(100000): total = 0 for j in range(40): […]

Alternativa eficiente a “en”

Estoy escribiendo un rastreador web con el objective final de crear un mapa de la ruta que tomó el rastreador. Si bien no tengo ni idea de a qué velocidad, y, sin duda, los mejores rastreadores bajan las páginas, el mío registra aproximadamente 2,000 páginas por minuto. El rastreador trabaja en un algoritmo de retroceso […]

Optimizacion cython

Estoy escribiendo una simulación bastante grande en Python y esperaba obtener un rendimiento extra de Cython. Sin embargo, para el código que aparece a continuación, parece que no lo consigo todo, a pesar de que contiene un bucle bastante grande. Aproximadamente 100k iteraciones. ¿Cometí algún error de principiantes o es este tamaño de bucle simplemente […]

¿Por qué es más rápido crear un conjunto a partir de una lista concatenada que usar `.update`?

Al intentar responder ¿Cuál es la forma preferida de componer un conjunto de varias listas en Python , hice un análisis de rendimiento y llegué a una conclusión algo sorprendente? Utilizando python -m timeit -s ‘ import itertools import random n=1000000 random.seed(0) A = [random.randrange(1<<30) for _ in xrange(n)] B = [random.randrange(1<<30) for _ in […]

Optimización de la cobertura de cadenas en Python

Tengo esta cadena inicial. ‘bananaappleorangestrawberryapplepear’ Y también tenemos una tupla con cuerdas: (‘apple’, ‘plepe’, ‘leoran’, ‘lemon’) Quiero una función para que de la cadena inicial y la tupla con cadenas obtengo esto: ‘bananaxxxxxxxxxgestrawberryxxxxxxxar’ Sé cómo hacerlo de forma imperativa al encontrar la palabra en la cadena inicial para cada palabra y luego hacer un bucle […]

Manera concisa de eliminar elementos de la lista por índice en Python

Tengo una lista de caracteres y una lista de índices. myList = [‘a’,’b’,’c’,’d’] toRemove = [0,2] y me gustaría tener esto en una operación myList = [‘b’,’d’] Podría hacer esto, pero ¿hay una manera de hacerlo más rápido? toRemove.reverse() for i in toRemove: myList.pop(i)