es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo sumar una lista de matrices dispersas?

Estoy intentando descubrir cómo sumar eficientemente matrices dispersas .csr_matrix almacenados en una lista. Aquí está el problema:

Lista_=lista_de_matrices_dispersas
Intenté lo siguiente
resultado=np.sum(List_)

¡Pero estoy obteniendo un error!

¿Cómo puedo hacerlo? Cualquier ayuda será muy apreciada.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para sumar de manera eficiente matrices dispersas .csr_matrix almacenadas en una lista, se puede utilizar la función integrada “sparse.vstack()” del módulo scipy.sparse para apilar verticalmente las matrices en la lista en una matriz dispersa, luego se utiliza el método “sum()” para sumar la matriz a lo largo del eje apropiado.

    Aquí hay un ejemplo de fragmento de código:

    import numpy as np
    from scipy.sparse import csr_matrix, vstack
    
    # crear algunas matrices dispersas de ejemplo
    A = csr_matrix([[1, 0, 2], [0, 3, 0]])
    B = csr_matrix([[4, 0, 0], [0, 5, 6], [7, 0, 8]])
    C = csr_matrix([[0, 9], [10, 0]])
    
    # almacenar las matrices en una lista
    lista_de_matrices = [A, B, C]
    
    # Apilar verticalmente las matrices
    matriz_apilada = vstack(lista_de_matrices)
    
    # Sumar la matriz a lo largo del eje apropiado
    resultado = matriz_apilada.sum(axis=0)
    
    print(resultado)
    

    Esto debería producir la suma de las tres matrices dispersas en la lista, dispuestas en un nuevo objeto de matriz dispersa.

Comments are closed.