2016-06-29 21 views
1

Ich habe eine Liste mit 2 Zellen, jedes von ihnen ist 3-dimensional Array, eins ist 3 mal 4 mal 5, das andere ist 6 mal 7 mal 8. Sie müssen die Teilmenge in der Liste wie: 5 von 4 um 3 und 8 um 7 um 6, benutzte ich array.transpose([2,1,0]), bekam den Fehler axes don't match.Liste der Teilmengen transponieren?

+0

Verwenden 'numpy.swapaxes'. –

+0

@MadPhysicist wird versuchen, aber jetzt habe ich ein anderes Problem, scheint eine Achse fehlt, wenn ich die Datei von h5py lesen – xman

+0

Drucken Sie die Form Ihrer Arrays, die Befehle, die Sie ausführen, die tatsächlichen, vollständige Fehler erhalten Sie. Ihre Kommentare stimmen nicht mit dem überein, was Sie in der Frage sagen. –

Antwort

2

Verwenden Sie stattdessen die numpy.ndarray.transpose()-Funktion. Scheint, als wäre das näher an dem, wonach du suchst.

Dokumentation: http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.transpose.html

+0

Verwenden Sie ndarray, ich habe den Fehler: nur Länge-1-Arrays können in Python-Skalare konvertiert werden. – xman

+0

@xman Konvertiere die Liste in ein Array mit 'np.asarray (input_list)' und versuche dann 'swapaxes' oder' transpose'. – Divakar

+0

@Divakar Ich habe jetzt ein anderes Problem, die h5py-Datei, die ich von "* .mat" mit 2 Zellen gelesen habe (jeweils 3 Dimension, 3 * 4 * 5 und 6 * 7 * 8), jetzt nur noch die 2. und 3. Achse übrig nach np.array(), und Dimension scheint wie (2 * 4 * 5) und (2 * 7 * 8) zu sein. – xman