Articles of rendimiento

Obteniendo días desde la última aparición en Pandas DataFrame?

Digamos que tengo un df Pandas DataFrame: Date Value 01/01/17 0 01/02/17 0 01/03/17 1 01/04/17 0 01/05/17 0 01/06/17 0 01/07/17 1 01/08/17 0 01/09/17 0 Para cada fila, quiero calcular de manera eficiente los días desde la última aparición de Value=1 . Para que df : Date Value Last_Occurence 01/01/17 0 NaN 01/02/17 […]

Python: ¿Por qué la comprensión de la lista es más lenta que para el bucle?

Esencialmente, estas son las mismas funciones, excepto que la comprensión de lista utiliza la sum lugar de x=0; x+= x=0; x+= ya que el último no es compatible. ¿Por qué la comstackción de listas es algo 40% más lenta? #list comprehension def movingAverage(samples, n=3): return [float(sum(samples[ij] for j in range(n)))/n for i in range(n-1, len(samples))] […]

Vectorización de un bucle basado en el orden de los valores de una serie.

Esta pregunta se basa en una pregunta anterior que respondí. La entrada se ve como: Index Results Price 0 Buy 10 1 Sell 11 2 Buy 12 3 Neutral 13 4 Buy 14 5 Sell 15 Necesito encontrar cada secuencia de Compra-Venta (ignorando los valores extra de Compra / Venta fuera de secuencia) y calcular […]

¿Las funciones de densidad de probabilidad incorporadas de `scipy.stat.distributions` son más lentas que las proporcionadas por un usuario?

Supongamos que tengo una matriz: adata=array([0.5, 1.,2.,3.,6.,10.]) Y quiero calcular la probabilidad de registro de la distribución de Weibull de esta matriz, dados los parámetros [5.,1.5] y [5.1,1.6] . Nunca pensé que debía escribir mis propias funciones de densidad de probabilidad Weibull para esta tarea, ya que ya está disponible en scipy.stat.distributions . Por lo […]

matriz de bits de Python (performante)

Estoy diseñando un filtro de floración y me pregunto cuál es la implementación de matriz de bits más eficaz en Python. Lo bueno de Python es que puede manejar enteros de longitud arbitraria fuera de la caja y eso es lo que uso ahora, pero no sé lo suficiente sobre los internos de Python para […]

Cuándo usar re.compile

Tenga paciencia conmigo, no puedo incluir mi progtwig de más de 1,000 líneas, y hay un par de preguntas en la descripción. Así que tengo un par de tipos de patrones que estoy buscando: #literally just a regular word re.search(“Word”, arg) #Varying complex pattern re.search(“[0-9]{2,6}-[0-9]{2}-[0-9]{1}”, arg) #Words with varying cases and the possibility of ending […]

Python: cualquier () rendimiento inesperado

Estoy comparando el rendimiento de la función incorporada any() con la implementación real que sugieren los documentos : Estoy buscando un elemento mayor que 0 en la siguiente lista: lst = [0 for _ in range(1000000)] + [1] Esta es la función supuestamente equivalente: def gt_0(lst): for elm in lst: if elm > 0: return […]

¿Por qué es más rápido convertir una lista en un conjunto que usar solo lista para calcular una diferencia de lista?

Digamos que deseo calcular la diferencia de dos listas C = A – B : A = [1,2,3,4,5,6,7,8,9] B = [1,3,5,8,9] C = [2,4,6,7] #Result A y B están ordenados con enteros únicos (no estoy seguro si hay una manera de decirle a Python sobre esta propiedad de la lista) . Necesito preservar el orden […]

Rendimiento de los recursos de la biblioteca en comparación con el código python

Como respuesta a mi pregunta Encuentra la posición basada en 1 en la que dos listas son las mismas , obtuve la sugerencia de usar las herramientas de la biblioteca C para acelerar las cosas. Para verificar codifiqué la siguiente prueba usando cProfile: from itertools import takewhile, izip def match_iter(self, other): return sum(1 for x […]

Pre-asignación de una lista de Ninguno

Supongamos que desea escribir una función que produzca una lista de objetos y conozca anticipadamente la longitud n de dicha lista. En Python, la lista admite el acceso indexado en O (1), por lo que es una buena idea pre-asignar la lista y acceder a ella con índices en lugar de asignar una lista vacía […]