TypeError: Mismatch zwischen Arrays dtype ('Objekt') und format specifier ('%.18e')
Habe ich Folgendes array:
X = np.array([image_array_to_vector1,image_array_to_vector2,image_array_to_vector3,image_array_to_vector4])
Einen Ausdruck X
sieht wie folgt aus:
[array([167, 167, 169, ..., 1, 1, 1], dtype=uint8)
array([42, 43, 43, ..., 41, 36, 34], dtype=uint8)
array([0, 0, 0, ..., 0, 0, 0], dtype=uint8)
array([0, 0, 0, ..., 0, 0, 0], dtype=uint8)]
Wenn ich versuche, die Daten zu speichern als txt:
X_to_text_file = np.savetxt('x.txt',X)
Bekomme ich die folgende:
File "/Library/Python/2.7/site-packages/numpy/lib/npyio.py", line 1258, in savetxt
% (str(X.dtype), format))
TypeError: Mismatch between array dtype ('object') and format specifier ('%.18e')
Warum ist das so? Wie kann ich das Problem lösen?
Dank.
ähnlich wie stackoverflow.com/questions/37713484/...
Ja, ich sah diese Frage und versucht, verschiedene Formate, aber noch immer das gleiche Problem
Ja, ich sah diese Frage und versucht, verschiedene Formate, aber noch immer das gleiche Problem
InformationsquelleAutor Simplicity | 2018-01-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ein wenig schwer zu duplizieren, ohne einige Beispiel-Daten, aber hier ist was ich kam mit.
Wie bereits von @Artier es gibt einen kleinen Schnipsel am Ende der akzeptierten Antworten in Schreiben object-array um .txt-Datei
, die Punkte heraus, können Sie einfach speichern Sie das array als string mit
fmt='%s'
. Verwenden Sie dieses format scheint das problem zu lösen für mich (wieder kann ich nicht neu erstellen, Ihr Problem genau und ohne Beispieldaten).Möchte ich darauf hinweisen, dass, wenn Sie schauen, um zu speichern unterschiedlichen arrays und wollen einen einzigen Standort zu halten, Ihnen
savez
ist sehr nützlich.InformationsquelleAutor Grr
Im wesentlichen
savetxt
tut:wo
fmt
konstruiert wird Ihrefmt
parameter (oder die Standardeinstellung) und die Anzahl der Spalten und das Trennzeichen.Haben Sie ein 1d-array von Objekten (arrays). Also das schreiben/drucken
%s
ist das einzige format, kann mit einem array (oder anderen Allgemeinen Gegenstand).savetxt
sollte verwendet werden, mit 2d-numerische arrays, die Art von Sache, die Sie produzieren, müssencsv
Spalten. Versuchen, es auf andere Dinge, wie dieses Objekt-array wird Ihnen Kopfschmerzen.Iteration auf ein 1d-array muss es sein, das überspringen der
tuple
. In jedem Fall das beste, was Sie tun können, ist eine%s
- format. Ansonsten schreiben Sie Ihre eigene benutzerdefinierte Datei-Schriftsteller.savetxt
ist nichts besonderes oder kraftvoll.InformationsquelleAutor hpaulj
Ich hatte die gleiche Fehlermeldung, und es schien, dass das problem mit arrays unterschiedlicher Länge. So müssen Sie sicher sein, geben die np.savetxt arrays von gleicher Länge.
InformationsquelleAutor Olga