Articles of optimización

Scipy.optimize termina exitosamente para NLP no factible

Intenté resolver una PNL usando el scipy.optimize SLSQP. El problema es claramente inviable, pero la función de minimizar en scipy.optimize parece estar en desacuerdo. minimize X^2 + Y^2 subject to X + Y = 11 X, Y >= 6 El código: from scipy.optimize import minimize def obj(varx): return varx[1]**2 + varx[0]**2 def constr1(varx): constr1 = […]

numpy: multiplicación de difusión sobre un eje común de dos matrices 2d

Estoy buscando una manera de multiplicar por dos elementos dos matrices de formas 2d (a, b) y (b, c), respectivamente. Sobre el eje ‘b’, que las dos matrices tienen en común. Por ejemplo, un ejemplo de lo que me gustaría transmitir (vectorizar) es: import numpy as np # some dummy data A = np.empty((2, 3)) […]

Cortar una matriz numpy

Me gustaría ‘esquilar’ una matriz numpy. No estoy seguro de que esté usando el término ‘cizalla’ correctamente; Por cizalla, me refiero a algo como: Desplazar la primera columna por 0 lugares. Desplazar la segunda columna por 1 lugar. Cambia la tercera columna por 2 lugares. etc … Así que esta matriz: array([[11, 12, 13], [17, […]

diferencia de rendimiento global o local del espacio de nombres

¿Por qué es que la ejecución de un conjunto de comandos en una función: def main(): [do stuff] return something print(main()) tenderá a ejecutarse de 1.5x a 3x veces más rápido en Python que ejecutando comandos en el nivel superior: [do stuff] print(something)

Restrinja scipy.optimize.minimize a valores enteros

Estoy usando scipy.optimize.minimize para optimizar un problema del mundo real para el que las respuestas solo pueden ser enteros. Mi código actual se ve así: from scipy.optimize import minimize def f(x): return (481.79/(5+x[0]))+(412.04/(4+x[1]))+(365.54/(3+x[2]))+(375.88/(3+x[3]))+(379.75/(3+x[4]))+(632.92/(5+x[5]))+(127.89/(1+x[6]))+(835.71/(6+x[7]))+(200.21/(1+x[8])) def con(x): return sum(x)-7 cons = {‘type’:’eq’, ‘fun’: con} print scipy.optimize.minimize(f, [1,1,1,1,1,1,1,0,0], constraints=cons, bounds=([0,7],[0,7],[0,7],[0,7],[0,7],[0,7],[0,7],[0,7],[0,7])) Esto produce: x: array([ 2.91950510e-16, 2.44504019e-01, 9.97850733e-01, 1.05398840e+00, […]

Scikit Learn GridSearchCV sin validación cruzada (aprendizaje no supervisado)

¿Es posible utilizar GridSearchCV sin validación cruzada? Estoy tratando de optimizar la cantidad de clústeres en el clúster KMeans a través de la búsqueda en cuadrícula, y por lo tanto no necesito o quiero validación cruzada. La documentación también me confunde porque, según el método fit (), tiene una opción para aprendizaje no supervisado (dice […]

Convertir una lista de bordes de 1.2GB en una matriz dispersa

Tengo una lista de bordes de 1.2GB de un gráfico en un archivo de texto. Mi ubuntu PC tiene 8GB de RAM. Cada línea en la entrada se ve como 287111206 357850135 Me gustaría convertirlo en una matriz de adyacencia dispersa y enviarlo a un archivo. Algunas estadísticas para mis datos: Number of edges: around […]

Encontrar índices de un valor en matriz 2d.

Tengo una matriz de la forma, mymatrix=[[1,2,3],[4,5,6],[7,8,9]] Quiero obtener el índice de, digamos, por ejemplo, 9 que está en (2,2). Lo que he tratado de hacer hasta ahora. for i,j in enumerate(mymatrix): for k,l in enumerate(j): if l==9: print i,k ¿Hay una mejor manera de hacer lo mismo? Optimización, alguien? Gracias por adelantado.

Optimizando cadenas en Cython

Estoy tratando de demostrar a nuestro grupo las virtudes de Cython para mejorar el rendimiento de Python. He mostrado varios puntos de referencia, todos los que alcanzan la velocidad con solo: Comstackndo el código Python existente. Usando cdef para variables de tipo estático, en particular en los bucles internos. Sin embargo, gran parte de nuestro […]

Compruebe eficientemente si un elemento aparece al menos n veces en una lista

¿Cómo escribir mejor una función de Python ( check_list ) para probar eficientemente si un elemento ( x ) ocurre al menos n veces en una lista ( l )? Mi primer pensamiento fue: def check_list(l, x, n): return l.count(x) >= n Pero esto no provoca un corto circuito una vez que x se ha […]