@incoggnito: Ui, bin ein bisschen langsam heute — die Antwort bezieht sich noch auf den Beitrag mit ``for`` über eine Zahl. Das scheitert ja schon an der ``for``-Schleife weil man nicht über eine Zahl iterieren kann:
Code: Alles auswählen
In [6]: files = []
In [7]: for k in len(files):
...: pass
...:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-7-0cb004cb6789> in <module>()
----> 1 for k in len(files):
2 pass
TypeError: 'int' object is not iterable
Das sind Grundlagen die Du Dir selbst erarbeiten musst. In der Python-Dokumentation ist beispielsweise ein Tutorial in dem unter anderem auch Schleifen in Python erklärt werden.
Da solltest Du dann auch kennenlernen das man in Python über die Elemente von Sequenztypen wie Listen *direkt* iterieren kann, ohne den Umweg über eine Indexlaufvariable.
Nach dem Python-Tutorial solltest Du das Numpy-Tutorial durcharbeiten. Zusätzlich gibt es bei der Numpy-Dokumentation auch noch speziell etwas für Leute die von Matlab kommen.
Sowohl beim Durcharbeiten von den Tutorials als auch beim Entwickeln von (Teil)Lösungen ist eine interaktive Python-Shell Dein Freund. Da kannst Du Code live ausprobieren und Teilausdrücke testen und entwickeln. IPython ist eine ganz nette Erweiterung der Standard-Shell und auch Grundlage von Jupyter-Notebooks, die im wissenschaftlichen Bereich auch ganz praktisch sind.
Beispiele für Numpy-Funktionen finden sich in der Numpy-Dokumentation und via `help()` direkt auf den jeweiligen Objekten. Beziehungsweise in IPython mit weniger Tipparbeit mit einem angehängten ``?``.
Zum Auffüllen mit 0en muss man ja die Maximallänge kennen. Falls die nicht vorher bekannt ist, würde ich die Vektoren in der Liste sammeln, dann die maximale Länge ermitteln (`max()`-Funktion + `key`-Argument) und mit `numpy.zeros()` gleich das ganze Array erstellen und dann in einer Schleife die Vektoren per „slicing“ jeweils an den Anfang der jeweiligen Zeile in dem Array schreiben. Dabei ist für die Schleife die `zip()`-Funktion interessant (`itertools.izip()` in Python 2.x) und der Umstand das `numpy` soweit wie möglich „views“ statt Kopien der Daten verwendet. Wenn man also über die Zeilen des Arrays iteriert und die Zeile in der Schleife verändert, dann verändert sich auch das zugrunde liegende Array.
`x` in Deinem Beispiel wird gar nicht verwendet‽ Ich erwähne das, weil man den Code ansonsten mit einer „list comprehension“ kompakter ausdrücken könnte.