den Unterschied zwischen Numpys Flach- und Ravel-Funktionen verstehen
Die numpy-Bibliothek bietet zwei Methoden, flach und ravel, um mehrdimensionale Arrays in eindimensionale Arrays zu konvertieren. Es stellt sich jedoch eine Frage: Warum zwei unterschiedliche Funktionen haben, die dieselbe Aufgabe ausführen?
identische Ausgabe, unterschiedliches Verhalten
sowohl verflachten als auch ravel geben eine Liste aller Elemente im Originalarray zurück, wie unten nachgewiesen:
import numpy as np
y = np.array(((1,2,3),(4,5,6),(7,8,9)))
print(y.flatten())
[1 2 3 4 5 6 7 8 9]
print(y.ravel())
[1 2 3 4 5 6 7 8 9]
[&anzen]
[&anzen]
Die wichtige Unterscheidung
Der entscheidende Unterschied liegt in der Art und Weise, wie die Funktionen mit dem zurückgegebenen Array umgehen. Flacherzeugt erstellt immer eine Kopie des Original -Arrays, während Ravel nach Möglichkeit eine Ansicht des Originalarrays erstellt. Wenn Sie das von Ravel zurückgegebene Array ändern, werden die Änderungen im ursprünglichen Array reflektiert. Dies kann in bestimmten Situationen vorteilhaft sein.
warnt mit ravel
. Es ist jedoch wichtig, mit Ravel vorsichtig zu sein. Wenn das zurückgegebene Array nicht als Ansicht des ursprünglichen Arrays dargestellt werden kann, erstellt Ravel eine Kopie. Zusätzlich kann das Ändern des von Ravel zurückgegebenen Array im Original-Array unerwartete Nebenwirkungen verursachen. FACHSE gibt immer eine Kopie zurück, während Ravel nach Möglichkeit eine Ansicht zurückgibt. Es ist wichtig, die Unterschiede im Verhalten zu verstehen, um die entsprechende Funktion für Ihre spezifischen Anforderungen auszuwählen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3