none lists index float empty crear array python matrix scipy sparse-matrix

python - lists - numpy none



Matrices dispersas de Scipy: propĆ³sito y uso de diferentes implementaciones (1)

Scipy tiene muchos tipos diferentes de matrices dispersas disponibles . ¿Cuáles son las diferencias más importantes entre estos tipos y cuál es la diferencia en su uso previsto?

Estoy desarrollando un código en python basado en un código de muestra 1 en Matlab. Una sección del código utiliza matrices dispersas, que parecen tener un único tipo (molesto) en Matlab, y estoy tratando de averiguar qué tipo de código debo usar 2 en python.

1: Esto es para una clase. La mayoría de la gente está haciendo el proyecto en Matlab, pero me gusta crear trabajo innecesario y confusión, aparentemente.

2: Esta es una pregunta académica: el código funciona correctamente con el formato '' CSR '', pero me interesa saber cuáles son los usos óptimos.


Lo siento si no estoy respondiendo esto por completo, pero espero poder proporcionar alguna información.

CSC (Compressed Sparse Column) y CSR (Compressed Sparse Row) son más compactos y eficientes, pero difíciles de construir "desde cero". Coo (Coordinate) y DOK (Dictionary of Keys) son más fáciles de construir, y luego pueden convertirse a CSC o CSR a través de matrix.tocsc() o matrix.tocsr() .

CSC es más eficiente en el acceso a los vectores de columna o las operaciones de columna, en general, ya que se almacena como matrices de columnas y su valor en cada fila.

Las matrices de CSR son lo opuesto; almacenados como matrices de filas y sus valores en cada columna, y son más eficientes para acceder a fila-vectores o operaciones de fila.