Articles of linear algebra

Cómo extraer tuplas de un dataframe simétrico de pandas

Tengo un dataframe que representa una matriz simétrica: abcd a 2 3 4 b 2 6 8 c 3 6 5 d 4 8 5 Desde donde quiero ir a: [(a,b,2),(a,c,3),(a,d,4),(b,c,6),…] ¿Hay alguna forma pythonica / pandática / algebraica de hacerlo o debería ir para hacer bucles? Gracias.

Python: convierte la matriz a positivo semi-definido

Actualmente estoy trabajando en métodos de kernel, y en algún momento tuve que hacer una matriz semi-definida no positiva (es decir, una matriz de similitud) en una matriz de PSD. He intentado este enfoque: def makePSD(mat): #make symmetric k = (mat+mat.T)/2 #make PSD min_eig = np.min(np.real(linalg.eigvals(mat))) e = np.max([0, -min_eig + 1e-4]) mat = k […]

Numpy invierte una matriz no invertible

Mi amigo y yo ejecutamos estas líneas de código en Python 2 y Python 3 : import numpy as np mat = np.array([[1,0,0],[-1,3,3],[1,2,2]]) np.linalg.inv(mat) Que devuelve: array([[ 1.00000000e+00, 0.00000000e+00, 0.00000000e+00], [ 1.50119988e+16, 6.00479950e+15, -9.00719925e+15], [ -1.50119988e+16, -6.00479950e+15, 9.00719925e+15]]) Lo que es impar dado: np.linalg.matrix_rank(mat) devuelve 2 , lo que indica que la matriz no es […]

Recuperar el número de iteraciones que se ejecutaron para un solucionador lineal disperso en SciPy

¿Cómo recuperar cuántas iteraciones se ejecutaron para alcanzar el nivel de tolerancia especificado en los solucionadores de sistemas lineales dispersos de SciPy ?

vectorización numpy de doble python para loop

V es (n, p) matriz numpy normalmente las dimensiones son n ~ 10, p ~ 20000 El código que tengo ahora parece A = np.zeros(p) for i in xrange(n): for j in xrange(i+1): A += F[i,j] * V[i,:] * V[j,:] ¿Cómo haría para reescribir esto para evitar el doble python for loop?

Numpy Añadiendo dos vectores con diferentes tamaños.

Si tengo dos matrices numpy de diferentes tamaños, ¿cómo puedo superponerlas? a = numpy([0, 10, 20, 30]) b = numpy([20, 30, 40, 50, 60, 70]) ¿Cuál es la forma más limpia de agregar estos dos vectores para producir un nuevo vector (20, 40, 60, 80, 60, 70)? Esta es mi pregunta genérica. Para el fondo, […]

¿Cuál es el método más preciso en python para calcular la solución de norma mínima o la solución obtenida del pseudoinverso?

Mi objective es resolver: Kc=y con el pseudoinverso (es decir, solución de norma mínima ): c=K^{+}y de modo que el modelo es (con suerte) un modelo polinomial de alto grado f(x) = sum_i c_i x^i . Estoy especialmente interesado en el caso indeterminado donde tenemos más características polinómicas que datos (pocas ecuaciones demasiadas variables / […]

Compruebe si hay definición positiva o semidefinitud positiva

Quiero verificar si una matriz es positiva definida o semidefinita positiva usando Python. ¿Cómo puedo hacer eso? ¿Hay una función dedicada en SciPy para eso o en otros módulos?

Genera una matriz “aleatoria” de cierto rango sobre un conjunto fijo de elementos

Me gustaría generar matrices de tamaño m x n y rango r , con elementos provenientes de un conjunto finito específico, por ejemplo, {0,1} o {1,2,3,4,5} . Quiero que sean “aleatorios” en un sentido muy vago de esa palabra, es decir, quiero obtener una variedad de resultados posibles del algoritmo con una distribución vagamente similar […]

¿Qué está causando la desaceleración 2x ​​en mi implementación de Cython de la multiplicación de vectores matriciales?

Actualmente estoy intentando implementar la multiplicación básica de vectores matriciales en Cython (como parte de un proyecto mucho más grande para reducir la computación ) y encuentro que mi código es aproximadamente 2 Numpy.dot más lento que Numpy.dot . Me pregunto si hay algo que me estoy perdiendo que esté resultando en la desaceleración. Estoy […]