Heim >Backend-Entwicklung >Python-Tutorial >Warum ändert das Transponieren eines 1D-NumPy-Arrays nicht seine Form?

Warum ändert das Transponieren eines 1D-NumPy-Arrays nicht seine Form?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-10 13:16:02879Durchsuche

Why Doesn't Transposing a 1D NumPy Array Change Its Shape?

Transponieren eines 1D-NumPy-Arrays: Eine überraschend einfache Lösung

Viele Programmierer stoßen auf Verwirrung, wenn sie versuchen, ein 1D-NumPy-Array zu transponieren. Lassen Sie uns tiefer in das Problem eintauchen und die überraschend einfache Lösung entdecken.

In NumPy vertauscht die mit .T bezeichnete Transponierungsoperation die Dimensionen eines Arrays. Wenn das Array jedoch eindimensional ist, bleibt seine Form nach der Transposition gleich. Dies kann für diejenigen, die als Ergebnis ein 2D-Array erwarten, verwirrend sein.

Betrachten Sie zur Veranschaulichung den folgenden Code:

import numpy as np
a = np.array([5, 4])
print(a)
print(a.T)

Die Ausgabe lautet:

[5 4]
[5 4]

Wie Sie sehen, führt das Transponieren des 1D-Arrays a nicht zu einer Formänderung. Dies liegt daran, dass die Transponierung eines 1D-Arrays immer noch ein 1D-Array ist.

Die Lösung besteht darin, das 1D-Array vor dem Transponieren in ein 2D-Array umzuwandeln. Dies kann mit der Funktion np.newaxis erreicht werden, die im Wesentlichen eine neue Achse in das Array einfügt:

a = np.array([5, 4])[np.newaxis]
print(a)
print(a.T)

Die Ausgabe lautet nun:

[[5 4]]
[[5]
 [4]]

Das 1D-Array a wurde erfolgreich in ein 2D-Array konvertiert und die Transposition führt zum gewünschten Ergebnis.

Es ist wichtig zu beachten, dass eine manuelle Eingabe in den meisten Fällen nicht erforderlich ist Konvertieren Sie ein 1D-Array zur Transposition in ein 2D-Array. NumPy sendet automatisch 1D-Arrays, wenn verschiedene Vorgänge ausgeführt werden, sodass Sie sich keine Gedanken über die Abmessungen machen müssen.

Das obige ist der detaillierte Inhalt vonWarum ändert das Transponieren eines 1D-NumPy-Arrays nicht seine Form?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn