Ich habe viel versucht, aber keiner der concatenate
oder vstack
funktioniert für mich.Wie kann ich eine Liste von 2d numpy Arrays in ein 3d numpy Array verketten?
Antwort
Haben Sie np.array
versucht?
np.array([[1,2],[3,4]])
macht eine 2D-Anordnung von 2 1D-Arrays (Listen) Verketten
ähnlich
np.array([np.ones(3,3), np.zeros(3,3)]]
sollte einen (2,3,3) -Matrix erzeugen.
Eine neuere np.stack
Funktion gibt Ihnen mehr Kontrolle darüber, welche Achse hinzugefügt wird. Es funktioniert, indem die Dimensionen aller Eingabearrays um eins erweitert und verkettet werden.
Sie können die Abmessungen selbst erweitern, z.
In [378]: A=np.ones((2,3),int)
In [379]: B=np.zeros((2,3),int)
In [380]: np.concatenate([A[None,:,:], B[None,:,:]], axis=0)
Out[380]:
array([[[1, 1, 1],
[1, 1, 1]],
[[0, 0, 0],
[0, 0, 0]]])
In [381]: _.shape
Out[381]: (2, 2, 3)
Die wichtigsten Dinge zu verstehen sind:
passende Dimensionen der Eingänge - sie alle, aber die Dimension entsprechen haben, die
erweitert die Dimensionen der Eingänge angeschlossen werden wie benötigt. Um 2D-Arrays zu einem 3D zu verketten, müssen die 2Ds zuerst auf 3D erweitert werden. Das
None
odernp.newaxis
Trick ist besonders wertvoll.verketten entlang der rechten Achse.
stack
, hstack
, vstack
etc alle erleichtern dies, sondern eine Fähigkeit numpy Benutzer sollte direkt arbeiten können mit concatenate
. Üben Sie mit kleinen Stichproben in einer interaktiven Sitzung.
In [385]: np.array((A,B)).shape
Out[385]: (2, 2, 3)
In [386]: np.stack((A,B)).shape
Out[386]: (2, 2, 3)
In [387]: np.stack((A,B),axis=1).shape
Out[387]: (2, 2, 3)
In [388]: np.stack((A,B),axis=2).shape
Out[388]: (2, 3, 2)
Wenn die Arrays in Form unterscheiden, wird np.array
DTYPE Array ein Objekt erstellen
In [389]: C=np.ones((3,3))
In [390]: np.array((A,C))
Out[390]:
array([array([[1, 1, 1],
[1, 1, 1]]),
array([[ 1., 1., 1.],
[ 1., 1., 1.],
[ 1., 1., 1.]])], dtype=object)
In [391]: _.shape
Out[391]: (2,)
dstack
(und stack
) werden Probleme mit unterschiedlicher Größe Arrays:
In [392]: np.dstack((A,B,C))
....
ValueError: all the input array dimensions except for the concatenation axis must match exactly
könnten Sie verwenden np.dstack können Dokumentation Sie hier: https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.dstack.html
import numpy as np
l1 = []
# create list of arrays
for i in range(5):
l1.append(np.random.random((5, 3)))
# convert list of arrays into 3-dimensional array
d = np.dstack(l1)
d.shape #(5,3,5)
- 1. 2D-Python-Liste von numpy Arrays 2D numpy Array
- 2. Numpy verketten 2D-Arrays mit 1D-Array
- 3. numpy 3D-Bild-Array 2D
- 4. Verketten von NumPy-Arrays
- 5. 3d Numpy Array bis 2d
- 6. Wie ein 2d numpy Array
- 7. Indizierung von 3d numpy Arrays mit 2d Arrays
- 8. Extrahieren von 1D-Arrays aus 3D numpy Array 2d boolean
- 9. Verketten numpy Arrays
- 10. Numpy: konvertieren 2D-Array zu Array 3D
- 11. Broadcasting ein 1d numpy Array mit einem 2d numpy Array
- 12. Subsetting ein 2D-numpy-Array
- 13. Maske ein 3D-Array mit einer 2d-Maske in numpy
- 14. Construct 3D-Array in numpy von bestehenden 2D-Array
- 15. Numpy Rebinning ein 2D-Array
- 16. Berechnen des 2D-Mittelwerts eines 3D-gezackten NumPy-Arrays
- 17. numpy 2d Array Rekursion
- 18. verketten leeres Array in Numpy
- 19. Wie man eine Liste von numpy Arrays in ein einzelnes numpy Array konvertiert?
- 20. Wie man numpy 2D-Array mit numpy 1D Array multiplizieren?
- 21. Ersatzeinträge von numpy Array mit numpy Arrays
- 22. Konvertieren eines 1D-Arrays in ein 2D-Array in numpy
- 23. Verketten numpy Arrays von verschiedenen Formen
- 24. Konvertieren eines 2D-Numpy-Arrays in ein strukturiertes Array
- 25. Umwandlung von einem Numpy 3D-Array zu einem 2D-Array
- 26. Kann numpy bilcount mit 2D-Arrays arbeiten?
- 27. 3d numpy record array
- 28. ein 3D numpy Array mit periodischen Randbedingungen
- 29. Mapping-Funktionen von 2D-Numpy-Arrays
- 30. Numpy mit Python: Konvertieren 3D-Array zu 2D
Ich habe versucht 'np.array()' aber das bringt mir ein numpy Array mit Form '(n,)' zurück, während jedes Element darin ein anderes numpy Array ist. – xxx222
Dann müssen sich Ihre 'n' Arrays in der Form unterscheiden. Es erstellt ein Objekt-Array. Wie ist die Form Ihrer Arrays? Ich sehe nicht, wie 'dstack' funktionieren würde. – hpaulj
Ich habe es damals nicht bemerkt! Ich fand schließlich einige meiner numply Arrays sind nicht mit der gleichen Größe. Danke für deine Antwort! – xxx222