Was ist der Unterschied zwischen NumPy's np.array
y np.asarray
? Wann sollte ich den einen und wann den anderen verwenden? Sie scheinen identische Ergebnisse zu erzeugen.
Antworten
Zu viele Anzeigen?Hier ist ein einfaches Beispiel, das den Unterschied verdeutlicht.
Der Hauptunterschied besteht darin, dass das Array eine Kopie der ursprünglichen Daten erstellt und wir mit Hilfe eines anderen Objekts die Daten im ursprünglichen Array ändern können.
import numpy as np
a = np.arange(0.0, 10.2, 0.12)
int_cvr = np.asarray(a, dtype = np.int64)
Der Inhalt des Arrays (a) bleibt unberührt, und wir können mit einem anderen Objekt eine beliebige Operation an den Daten durchführen, ohne den Inhalt des ursprünglichen Arrays zu verändern.
Verstehen wir den Unterschied zwischen np.array()
y np.asarray()
mit dem Beispiel:
np.array(): Konvertiert Eingabedaten (Liste, Tupel, Array oder ein anderer Sequenztyp) in ein ndarray und kopiert die Eingabedaten standardmäßig.
np.asarray(): Konvertiert Eingabedaten in ein ndarray, kopiert aber nicht, wenn die Eingabe bereits ein ndarray ist.
#Create an array...
arr = np.ones(5); # array([1., 1., 1., 1., 1.])
#Now I want to modify `arr` with `array` method. Let's see...
np.array(arr)[3] = 200; # array([1., 1., 1., 1., 1.])
Keine Änderung im Array, da wir eine Kopie der arr
.
Ändern Sie nun arr
と asarray()
Methode.
np.asarray(arr)[3] = 200; # array([1., 200, 1., 1., 1.])
Die Änderung erfolgt in diesem Array, weil wir jetzt mit dem ursprünglichen Array arbeiten.
- See previous answers
- Weitere Antworten anzeigen