NumPy-Array-Serialisierungsproblem mit Django
Bei der Verwendung von NumPy-Arrays in Django-Kontexten kann es zu einer Fehlermeldung kommen, die besagt, dass das Array kein JSON ist serialisierbar. Dies liegt daran, dass NumPy-Arrays standardmäßig nicht direkt im JSON-Format dargestellt werden können.
Erklärung der Serialisierung
Serialisierung beinhaltet die Konvertierung von Objekten in ein Format, das übertragen werden kann einem Netzwerk oder dauerhaft gespeichert. JSON (JavaScript Object Notation) ist ein beliebtes Datenformat, das für beide Zwecke verwendet wird. Allerdings sind Arrays, die in der nativen Datenstruktur von NumPy gespeichert sind (die mit der Speicheroptimierung übereinstimmt), nicht mit dem JSON-Format kompatibel.
Lösung: Konvertieren in Listen
Um dieses Problem zu beheben, Sie können das NumPy-Array mit der Methode .tolist() in eine verschachtelte Liste konvertieren. Dieser Prozess erstellt eine Listenstruktur, die von Natur aus mit der JSON-Serialisierung kompatibel ist.
Codebeispiel
Hier ist ein Beispiel für die Serialisierung und Deserialisierung eines NumPy-Arrays in Python:
<code class="python">import numpy as np import codecs, json # Create a 2D NumPy array a = np.arange(10).reshape(2, 5) # Convert the array to a list b = a.tolist() # Serialize the list using JSON json.dump(b, codecs.open('path.json', 'w', encoding='utf-8'), separators=(',', ':'), sort_keys=True, indent=4) # De-serialize the JSON back to a NumPy array obj_text = codecs.open('path.json', 'r', encoding='utf-8').read() b_new = json.loads(obj_text) a_new = np.array(b_new)</code>
Dieser Prozess wandelt das NumPy-Array in ein Format um, das über das Netzwerk übertragen und anschließend in seine ursprüngliche Form rekonstruiert werden kann.
Das obige ist der detaillierte Inhalt vonWie serialisiere ich NumPy-Arrays in Django für JSON-Kompatibilität?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!