web-dev-qa-db-fra.com

python3-numpy: ajout à un fichier à l'aide de numpy savetxt

J'essaie d'ajouter des données à un fichier en utilisant la fonction savetxt de numpy. Ci-dessous est l'exemple de travail minimum

#!/usr/bin/env python3
import numpy as np
f=open('asd.dat','a')
for iind in range(4):
    a=np.random.Rand(10,10)
    np.savetxt(f,a)
f.close()

L'erreur que j'ai eue concerne le type de l'erreur

Fichier "/usr/lib/python3/dist-packages/numpy/lib/npyio.py", ligne 1073, dans savetxt fh.write (asbytes (format% Tuple (row) + newline)) TypeError: must be str, not octets

Cette erreur ne se produit pas en python2, donc je me demande quel pourrait être le problème. Quelqu'un peut m'aider?

27
Meenakshi

Vous devez ouvrir le fichier en mode binaire.

#!/usr/bin/env python3
import numpy as np        
f=open('asd.dat','ab')
for iind in range(4):
    a=np.random.Rand(10,10)
    np.savetxt(f,a)
f.close()

référence: python - Comment écrire un tableau numpy dans un fichier csv? - Dépassement de pile Comment écrire un tableau numpy dans un fichier csv?

30
user4352571