Sto cercando di salvare una matrice NumPy (NX3, float64) in un file txt con numpy.savetxt:numpy.savetxt risultante un errore di formattazione mancata corrispondenza in python 3.5
np.savetxt(f, mat, fmt='%.5f', delimiter=' ')
Questa linea ha lavorato in python 2.7 , ma in Python 3.5, sto ottenendo il seguente errore:
TypeError: Mismatch between array dtype ('float64') and format specifier ('%.5f %.5f %.5f')
Quando sto passo nel codice savetxt, la stampa l'errore (traceback.format_exc()) nel blocco catch (numpy.lib .npyio, riga 1158), l'errore è completamente diverso:
TypeError: write() argument must be str, not bytes
La riga di codice risultante eccezione è il seguente:
fh.write(asbytes(format % tuple(row) + newline))
ho cercato di rimuovere le asbytes, e sembra per correggere questo errore. È un bug in numpy?
Grazie! Ha funzionato! Scrivo anche del testo in questo file, quindi prima ho dovuto aprirlo con "w", quindi riaprirlo con "ab". –
È possibile creare stringhe di byte con "b'one due tre". – hpaulj
Ho avuto lo stesso errore durante la scrittura su un oggetto 'io.StringIO'. In tal caso la soluzione è sostituirla con un oggetto 'io.BytesIO'. – SiggyF