Dump d'un tableau NumPy dans un fichier csv

Existe-t-il un moyen de transférer un tableau NumPy dans un fichier CSV ? J'ai un tableau NumPy en 2D et j'ai besoin de le convertir dans un format lisible par l'homme.

Solution

[numpy.savetxt][1] enregistre un tableau dans un fichier texte.

import numpy
a = numpy.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
numpy.savetxt("foo.csv", a, delimiter=",")

[1] : http://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.html

Commentaires (11)

[tofile][1] est une fonction pratique pour faire cela :

import numpy as np
a = np.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
a.tofile('foo.csv',sep=',',format='%10.5f')

La page de manuel contient quelques notes utiles :

C'est une fonction pratique pour le stockage rapide des données d'un tableau. Les informations relatives à l'endiveté et à la précision sont perdues. Cette méthode n'est donc pas un bon choix pour les fichiers destinés à archiver des données ou à transporter des données entre des machines ayant des en-têtes différents. entre des machines dont l'encodage est différent. Certains de ces problèmes peuvent Certains de ces problèmes peuvent être résolus en produisant les données sous forme de fichiers texte, au détriment de la vitesse et de la taille du fichier. vitesse et de la taille du fichier.

Remarque. Cette fonction ne produit pas de fichiers csv multi-lignes, elle enregistre tout sur une seule ligne.

[1] : http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.tofile.html

Commentaires (4)

Si vous voulez enregistrer votre tableau numpy (par exemple votre_tableau = np.array([[1,2],[3,4]])) dans une cellule, vous pouvez d'abord le convertir avec votre_tableau.tolist().

Ensuite, sauvegardez-le normalement dans une cellule, avec delimiter=';'. et la cellule du fichier csv ressemblera à ceci : "[[1, 2], [2, 4]]`".

Ensuite, vous pouvez restaurer votre tableau comme suit votre_tableau = np.array(ast.literal_eval(cell_string))

Commentaires (1)