Heim > Backend-Entwicklung > Python-Tutorial > So verwenden Sie np.vstack() und np.hstack() in Python

So verwenden Sie np.vstack() und np.hstack() in Python

PHPz
Freigeben: 2023-04-18 13:04:03
nach vorne
2667 Leute haben es durchsucht

Hier stellen wir zwei Methoden zum Spleißen von Arrays vor:

np.vstack(): Stapeln in vertikaler Richtung

np.hstack(): Kacheln in horizontaler Richtung

import numpy as np
arr1=np.array([1,2,3])
arr2=np.array([4,5,6])
print np.vstack((arr1,arr2))
 
print np.hstack((arr1,arr2))
 
a1=np.array([[1,2],[3,4],[5,6]])
a2=np.array([[7,8],[9,10],[11,12]])
print a1
print a2
print np.hstack((a1,a2))
Nach dem Login kopieren

Die Ergebnisse sind wie folgt:

[ [ 1 2 3]
[4 5 6]]
[1 2 3 4 5 6]
[[1 2]
[3 4]
[5 6]]
[[ 7 8]
[ 9 10]
[ 11 12]]
[[ 1 2 7 8]
[ 3 4 9 10]
[ 5 6 11 12]]

Hier muss betont werden, dass ich bei der Anwendung von hstack immer Aufgabe 1 auf cs231n ausführe Fehler hier im hstack! Erst da wurde mir klar, dass mein bisheriges Studium sehr oberflächlich war!

(1)np.hstack()

Funktionsprototyp: numpy.hstack(tup)

wobei tup die Folge von Arrays ist, tup: Folge von ndarrays

Die Arrays müssen entlang aller Felder die gleiche Form haben aber die zweite Achse, außer 1-D-Arrays, die eine beliebige Länge haben können.

Äquivalent zu: np.concatenate(tup, axis=1)

Beispiel 1:

import numpy as np
brr1=np.array([1,2,3,4,55,6,7,77,8,9,99])
brr1_folds=np.array_split(brr1,3)
print brr1_folds
print brr1_folds[0:2]+brr1_folds[1:3]
print np.hstack((brr1_folds[:2]+brr1_folds[1:3]))
print brr1_folds[0:2]
print brr1_folds[1:3]
#print np.hstack((brr1_folds[0:2],brr1_folds[1:3]))
Nach dem Login kopieren

Wenn die letzte Zeile nicht auskommentiert ist, an Fehler wird auftreten;

[array([1, 2, 3, 4]), array([55, 6, 7, 77]), array([ 8, 9, 99])]
[array([ 1, 2, 3 , 4]), array([55, 6, 7, 77]), array([55, 6, 7, 77]), array([ 8, 9, 99])]
[ 1 2 3 4 55 6 7 77 55 6 7 77 8 9 99]
[array([1, 2, 3, 4]), array([55, 6, 7, 77])]
[array([55, 6, 7, 77 ]), array([ 8, 9, 99])]

Der Grund für den Fehler ist, dass die Abmessungen meines Arrays inkonsistent sind. Ändern Sie es einfach in +. Das Pluszeichen ist das Zusammenfügen der Liste!

Beispiel 2:

print np.hstack(([1,2,3,3,4],[3,4,5,8,6,6,7]))
Nach dem Login kopieren

Das Ergebnis ist: Es zeigt, dass das eindimensionale Array hstack beliebig ist.

[1 2 3 3 4 3 4 5 8 6 6 7]

Beispiel 3:

zeigt, dass unser hstack die gleiche zweite Dimension haben muss:

print np.hstack(([1,2,3,3,4],[3,4,5,8,6,6,7]))
print np.hstack(([[1,2,3],[2,3,4]],[[1,2],[2,3]]))
Nach dem Login kopieren

Ergebnis:

[1 2 3 3 4 3 4 5 8 6 6 7]
[[1 2 3 1 2]

[2 3 4 2 3]]

Wenn Sie das Obige wie folgt ändern, wird ein Fehler gemeldet! ! !

print np.hstack(([1,2,3,3,4],[3,4,5,8,6,6,7]))
print np.hstack(([[1,2,3],[2,3,4]],[[1,2]]))
Nach dem Login kopieren

(2)np.vstack()

Funktionsprototyp: numpy.hstack(tup)

tup: Sequenz von ndarrays

Die Arrays müssen entlang aller außer der ersten Achse die gleiche Form haben.1- D-Arrays müssen die gleiche Länge haben.

bedeutet, dass wir mit Ausnahme der ersten Dimension in anderen Dimensionen die gleiche Form haben müssen. Eindimensionale Arrays müssen die gleiche Größe haben.

Beispiel 1:

print np.vstack(([1,2,3],[3,4,3]))
print np.vstack(([1,2,3],[2,3]))
Nach dem Login kopieren

Aber man sollte darauf achten, dass die zweite Zeile falsch ist!

Beispiel 2:

print np.vstack(([[1,2,3],[3,4,3]],[[1,3,4],[2,4,5]]))
print np.vstack(([[1,2,3],[3,4,3]],[[3,4],[4,5]]))
Nach dem Login kopieren

Dasselbe zeigt, dass ein Fehler auftritt, wenn die zweite Dimension unseres Arrays unterschiedlich ist.

print np.vstack(([[1,2,3],[3,4,3]],[[2,4,5]]))
print np.vstack(([[1,2,3],[3,4,3]],[[4,5]]))
Nach dem Login kopieren

Beispiel 3:

Wir übergeben die Liste:

import numpy as np
arr1=np.array([[1,2],[2,4],[11,33],[2,44],[55,77],[11,22],[55,67],[67,89]])
arr11=np.array([[11,2,3],[22,3,4],[4,5,6]])
arr1_folds=np.array_split(arr1,3)
print arr1_folds
print np.vstack(arr1_folds)
Nach dem Login kopieren

Das Ergebnis:

[array([[ 1, 2],
              2, 4],
                   [11, 33]]), Array ([[ 2, 44],
[55, 77],
[11, 22]]), array([[55, 67],
[67, 89]])]
[[ 1 2]
[ 2 4]
[11 33]
[ 2 44]
[55 77]
[11 22]
[55 67]
[67 89]]

Das obige ist der detaillierte Inhalt vonSo verwenden Sie np.vstack() und np.hstack() in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage