Wie funktioniert numpy.newaxis und wann kann es verwendet werden?
Wenn ich versuche
numpy.newaxis
das Ergebnis gibt mir eine 2-d-plot-Rahmen mit x-Achse von 0 bis 1. Jedoch, wenn ich versuche über numpy.newaxis
schneiden, Vektor,
vector[0:4,]
[ 0.04965172 0.04979645 0.04994022 0.05008303]
vector[:, np.newaxis][0:4,]
[[ 0.04965172]
[ 0.04979645]
[ 0.04994022]
[ 0.05008303]]
Ist es das gleiche, außer, dass es verändert einen zeilenvektor zu einem Spalten-Vektor?
In der Regel, was ist die Verwendung von numpy.newaxis
, und in dem Fall sollten wir es nutzen?
InformationsquelleAutor der Frage Yue Harriet Huang | 2015-03-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfach gesagt, die
newaxis
wird verwendet, um erhöhen die dimension des vorhandenen array von eine weitere dimension, wenn einmal. So,1D array wird 2D array
2D array wird 3D array
3D array wird 4D array
und so weiter.. Hier ist eine visuelle Darstellung.
Szenario-1:
np.newaxis
könnte in handliches kommen, wenn Sie wollen explizit konvertiert ein 1D-array entweder eine zeilenvektor oder eine Spalten-Vektor, wie dargestellt, in das obige Bild.Beispiel:
Szenario-2: Wenn wir wollen, zu nutzen numpy Rundfunk als Teil der operation, zum Beispiel während neben von einigen arrays.
Beispiel:
Lassen Sie uns sagen, Sie möchten, fügen Sie die folgenden zwei arrays:
Wenn Sie versuchen, fügen Sie diese einfach so, NumPy erhöhen die folgenden
ValueError
:In dieser situation, die Sie verwenden können,
np.newaxis
zur Erhöhung der dimension eines arrays (so dass NumPy kann broadcast.Fügen Sie nun:
Alternativ können Sie auch das hinzufügen neuer Achse in das array
x2
:Fügen Sie nun:
Hinweis: Beachten Sie, das wir erhalten das gleiche Ergebnis in beiden Fällen (aber eine, die das transponieren von den anderen).
Szenario-3: Dies ist ähnlich zu dem Szenario 1. Aber, Sie können
np.newaxis
mehr als einmal zu fördern das array auf höhere Dimensionen.Beispiel:
Mehr hintergrund auf np.newaxis vs np.Umformen
newaxis
ist auch als pseudo-index, ermöglicht die temporäre Zugabe von einer Achse in einem multiarray.np.newaxis
verwendet die slicing-operator zum erstellen des array, währendnp.Umformen
formt das array, um das gewünschte layout (unter der Annahme, dass die Dimensionen übereinstimmen; Und dies ist muss für eineumgestalten
geschehen).Beispiel
In dem obigen Beispiel eingefügt, eine temporäre Achse zwischen der ersten und zweiten Achsen
B
(broadcasting). Eine fehlende Achse gefüllt ist-hier mitnp.newaxis
, um die Rundfunk Betrieb arbeiten.Allgemeiner Tipp: Sie können auch
None
im Ortnp.newaxis
; Diese sind in der Tat die gleiche Objekte.P. S. siehe Auch diese tolle Antwort: newaxis vs Umformen, fügen Sie Dimensionen
InformationsquelleAutor der Antwort kmario23
Sie begann mit einer eindimensionalen Liste von zahlen. Sobald Sie verwendet
numpy.newaxis
Sie verwandelte Sie in eine zwei-dimensionale matrix, die aus vier Zeilen der einen Spalte jeweils.Könnte man dann verwenden, dass die matrix-matrix-Multiplikation, oder um es in den Bau eines größeren 4 x n-matrix.
InformationsquelleAutor der Antwort Kevin
newaxis
Objekt in der Auswahl der Tupel dient erweitern Sie die Dimensionen der daraus resultierenden Auswahl von eine Einheit-Länge dimension.Es ist nicht nur die Umwandlung der Zeilen-matrix-Spalte-matrix.
Betrachten Sie das Beispiel unten:
Nun eine neue dimension, um unsere Daten,
Können Sie sehen, dass
newaxis
zusätzlichen dimension, x1 hatten, dimension (3,3) und X1_new hat die dimension (3,1,3).Wie unsere neuen dimension ermöglicht es uns, verschiedene Operationen:
Hinzufügen x1_new und x2 erhalten wir:
So
newaxis
ist nicht nur die Umwandlung von Zeile zu Spalte der matrix. Es erhöht die dimension der matrix, so dass wir mehr tun-Operationen.InformationsquelleAutor der Antwort harsh hundiwala
Was ist
np.newaxis
?Den
np.newaxis
ist nur ein alias für die Python-KonstanteNone
, was bedeutet, dass überall dort, wo Sie verwendennp.newaxis
Sie können auchNone
:Geht es nur mehr beschreibenden, wenn Sie Lesen, code, verwendet
np.newaxis
stattNone
.Wie zu verwenden
np.newaxis
?Den
np.newaxis
wird im Allgemeinen verwendet, mit schneiden. Es zeigt an, dass Sie möchten, fügen Sie eine zusätzliche dimension, um das array. Die position dernp.newaxis
darstellt, wo ich will hinzufügen von Bemaßungen.Im ersten Beispiel benutze ich alle Elemente aus der ersten dimension, und fügen Sie eine zweite dimension:
Zweiten Beispiel fügt eine dimension, die als erste dimension und verwendet dann alle Elemente aus der ersten dimension des ursprünglichen Arrays als Elemente in der zweiten dimension das Ergebnis-array:
Ebenso können Sie auch mehrere
np.newaxis
Sie mehrere Dimensionen:Gibt es alternativen zu
np.newaxis
?Gibt es eine weitere sehr ähnliche Funktionen in NumPy:
np.expand_dims
, die kann auch verwendet werden, zum einfügen einer dimension:Aber angesichts der Tatsache, dass es nur Einsätze
1
s in dershape
man könnte auchreshape
dem array hinzufügen Maße:Meisten der Zeit
np.newaxis
ist die einfachste Methode zum hinzufügen von Dimensionen, aber es ist gut zu wissen, die alternativen.Wann
np.newaxis
?In mehrere Kontexte hinzufügen Maße nützlich:
Sollten die Daten haben eine bestimmte Anzahl von Dimensionen. Zum Beispiel, wenn Sie verwenden möchten
matplotlib.pyplot.imshow
anzeigen ein 1D-array.Wenn Sie möchten, NumPy, um broadcast-arrays. Durch das hinzufügen einer dimension, die Sie könnte zum Beispiel den Unterschied zwischen allen Elementen eines Arrays:
a - a[:, np.newaxis]
. Dies funktioniert, weil NumPy Operationen broadcast-beginnend mit der letzten dimension 1.Hinzufügen eine notwendige dimension, so dass NumPy kann broadcast-arrays. Dies funktioniert, weil jede Länge-1 dimension ist einfach die Ausstrahlung, um die Länge des entsprechenden1 - dimension von dem anderen array.
1 Wenn Sie möchten, um mehr über den Rundfunk Regeln der NumPy-Dokumentation zu diesem Thema ist sehr gut. Es enthält auch ein Beispiel mit
np.newaxis
:InformationsquelleAutor der Antwort MSeifert