Articles of linear algebra

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 […]

Resta cada fila de la matriz A de cada fila de la matriz B sin bucles

Dados dos arrays, A (forma: MXC) y B (forma: NXC), ¿hay una manera de restar cada fila de A de cada fila de B sin usar bucles? La salida final sería de forma (MNXC). Ejemplo A = np.array([[ 1, 2, 3], [100, 200, 300]]) B = np.array([[ 10, 20, 30], [1000, 2000, 3000], [ -10, […]

Cálculo rápido y eficiente de un vector propio para un valor propio conocido

Versión corta de mi pregunta : ¿Cuál sería la forma óptima de calcular un vector propio para una matriz A , si ya conocemos el valor propio que pertenece al vector propio? Explicación más larga : Tengo una gran matriz estocástica A que, como es estocástica, tiene un vector propio izquierdo no negativo x (tal […]

Matrix exponentiation en python

Estoy tratando de exponer una matriz compleja en Python y estoy teniendo algunos problemas. Estoy usando la función scipy.linalg.expm , y tengo un mensaje de error bastante extraño cuando bash el siguiente código: import numpy as np from scipy import linalg hamiltonian = np.mat(‘[1,0,0,0;0,-1,0,0;0,0,-1,0;0,0,0,1]’) # This works t_list = np.linspace(0,1,10) unitary = [linalg.expm(-(1j)*t*hamiltonian) for t […]

scipy.sparse.coo_matrix cómo encontrar rápidamente la columna de todos los ceros, rellenar con 1 y normalizar

Para una matriz, quiero buscar columnas con todos los ceros y rellenar con 1, y luego normalizar la matriz por columna. Sé cómo hacerlo con np.arrays [[0 0 0 0 0] [0 0 1 0 0] [1 0 0 1 0] [0 0 0 0 1] [1 0 0 0 0]] | V [[0 1 […]