Existe-t-il un moyen de vider un tableau NumPy dans un fichier CSV? J'ai un tableau NumPy 2D et dois le vider dans un format lisible par l'homme.
545
numpy.savetxt
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=",")
numpy.array
chaînes. Pourriez-vous prescrire une méthode pour enregistrer au format csv pour unnumpy.array
objet contenant des chaînes?fmt='%s'
Vous pouvez utiliser
pandas
. Cela prend de la mémoire supplémentaire, donc ce n'est pas toujours possible, mais c'est très rapide et facile à utiliser.si vous ne voulez pas d'en-tête ou d'index, utilisez
to_csv("/path/to/file.csv", header=None, index=None)
la source
df.to_csv("file_path.csv", header=None)
header=None, index=None
suppriment la ligne d'en-tête et la colonne d'index.comments
argument de mot clé sur''
, le#
sera supprimé.tofile
est une fonction pratique pour ce faire:La page de manuel contient quelques notes utiles:
Remarque. Cette fonction ne produit pas de fichiers csv multi-lignes, elle enregistre tout sur une seule ligne.
la source
L'écriture de tableaux d'enregistrements sous forme de fichiers CSV avec en-têtes nécessite un peu plus de travail.
Cet exemple lit un fichier CSV avec l'en-tête sur la première ligne, puis écrit le même fichier.
Notez que cet exemple ne prend pas en compte les chaînes avec des virgules. Pour prendre en compte les devis pour les données non numériques, utilisez le
csv
package:la source
Comme déjà discuté, la meilleure façon de vider le tableau dans un fichier CSV est d'utiliser la
.savetxt(...)
méthode. Cependant, il y a certaines choses que nous devons savoir pour le faire correctement.Par exemple, si vous avez un tableau numpy avec
dtype = np.int32
aset souhaitez enregistrer en utilisant en
savetxt
tant queIl stockera les données au format exponentiel à virgule flottante comme
Vous devrez modifier la mise en forme en utilisant un paramètre appelé
fmt
aspour stocker les données dans leur format d'origine
Enregistrement des données au format gz compressé
En outre,
savetxt
peut être utilisé pour stocker des données en.gz
format compressé qui pourraient être utiles lors du transfert des données sur le réseau.Nous avons juste besoin de changer l'extension du fichier
.gz
et numpy s'occupera de tout automatiquementJ'espère que cela aide
la source
fmt="%d"
était ce que je cherchais. Je vous remercie!Je pense que vous pouvez également accomplir cela tout simplement comme suit:
par exemple # 1:
par exemple # 2:
la source
si vous voulez écrire dans la colonne:
Ici, «a» est le nom du tableau numpy et «fichier» est la variable à écrire dans un fichier.
Si vous voulez écrire en ligne:
la source
Si vous souhaitez enregistrer votre tableau numpy (par exemple
your_array = np.array([[1,2],[3,4]])
) dans une cellule, vous pouvez d'abord le convertir avecyour_array.tolist()
.Ensuite, enregistrez-le de manière normale dans une cellule, avec
delimiter=';'
et la cellule dans le fichier csv ressemblera à ceci[[1, 2], [2, 4]]
Ensuite, vous pouvez restaurer votre tableau comme ceci:
your_array = np.array(ast.literal_eval(cell_string))
la source
Vous pouvez également le faire avec du python pur sans utiliser de modules.
la source
En Python, nous utilisons le module csv.writer () pour écrire des données dans des fichiers csv. Ce module est similaire au module csv.reader ().
Un délimiteur est une chaîne utilisée pour séparer les champs. La valeur par défaut est une virgule (,).
la source