2011-05-22 17 views
6

Tengo una matriz scipy.sparse.csr y me gustaría volcarla en un archivo CSV. ¿Hay alguna forma de preservar la dispersión de la matriz y escribirla en un archivo CSV?Volcar una matriz dispersa en un archivo

+0

¿Cómo vas a usar el archivo CSV disperso? Los programas existentes que leen en el archivo CSV supondrán que cada línea contiene una fila y los campos están separados por comas. Tal vez al comprimir el archivo obtienes lo que quieres. – ditkin

+0

Lo estoy usando para otra tarea. CSV probablemente sea la elección incorrecta. Quiero un archivo de texto donde para cada fila en la matriz obtengo los valores de solo los valores que no son cero. Actualmente, lo he hecho usando algún código. Me preguntaba si podría hacerse de manera más inteligente o no. – Dexter

Respuesta

8

SciPy incluye funciones que leen/escriben matrices dispersas en el formato MatrixMarket a través de la scipy.io module, incluyendo mmwrite: http://docs.scipy.org/doc/scipy/reference/generated/scipy.io.mmwrite.html

MatrixMarket no es CSV, pero cerca. Consiste en un encabezado de una línea que tiene #rows, #cols, # of nonzeros, seguido de una línea por cada cero. Cada una de estas líneas es el índice de fila, índice de columna, valor. Podrías escribir un script simple que convierta el espacio en blanco en comas y tendrías un CSV.

Cuestiones relacionadas