2011-05-22 5 views
6

J'ai une matrice scipy.sparse.csr et voudrais le vider dans un fichier CSV. Existe-t-il un moyen de préserver la parcimonie de la matrice et de l'écrire dans un fichier CSV?Dump une matrice clairsemée dans un fichier

+0

Comment allez-vous utiliser le fichier CSV clairsemé? Les programmes existants qui lisent dans le fichier CSV vont supposer que chaque ligne contient une ligne et les champs sont séparés par des virgules. Peut-être que la compression du fichier vous permet d'obtenir ce que vous voulez. – ditkin

+0

Je l'utilise pour une autre tâche. Le CSV peut probablement être le mauvais choix. Je veux un fichier texte où pour chaque ligne de la matrice je reçois les valeurs de seulement les valeurs non nulles. Actuellement, j'ai fait cela en utilisant du code. Je me demandais simplement si cela pouvait être fait plus intelligemment ou autrement. – Dexter

Répondre

8

SciPy comprend des fonctions de lecture/écriture des matrices creuses dans le format MatrixMarket via le scipy.io module, y compris mmwrite: http://docs.scipy.org/doc/scipy/reference/generated/scipy.io.mmwrite.html

MatrixMarket n'est pas CSV, mais à proximité. Il se compose d'un en-tête d'une ligne contenant #rows, #cols, # de nonzeros, suivi d'une ligne par non zéro. Chacune de ces lignes est l'index de la ligne, l'index de la colonne, la valeur. Vous pourriez écrire un script simple qui transforme les espaces en virgules et vous auriez un fichier CSV.

Questions connexes