@01detlef: Erstmal hast Du da keine drei Arrays sondern nur zwei. Der ``if j == 2:``-Zweig wird niemals ausgeführt weil `j` nur die Werte 0 und 1 annimmt.
Und dann geht da sehr viel am Sinn von `numpy`-Arrays vorbei. Du willst in der Regel kein kein `__builtin__.map()` auf ein `numpy`-Array ausführen. Da wird aus einem Array eine Liste erstellt um daraus dann wieder ein Array zu erstellen. Das ist ein unnötiger und ineffizient Zwischenschritt. Das Teilen in drei Arrays um sie danach wieder zusammen zu fügen ist ebenfalls ungünstig und unnötig.
Ich gehe mal davon aus, dass die Elemente von `mod` bereits Zahlen im weitesten Sinne sind. Sollte das nicht der Fall sein, müsste man sich mal anschauen wie `mod` erstellt wurde.
Dann willst Du die Spalten 2 bis 4 heraus „slicen” und mit einem Array mit den Faktoren für die Spalten multiplizieren.
Code: Alles auswählen
In [61]: mod
Out[61]:
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]])
In [62]: mod[:,1:4]
Out[62]:
array([[ 1, 2, 3],
[ 6, 7, 8],
[11, 12, 13],
[16, 17, 18],
[21, 22, 23]])
In [63]: mod[:,1:4] * np.array([7.0, 3.0, 4.0])
Out[63]:
array([[ 7., 6., 12.],
[ 42., 21., 32.],
[ 77., 36., 52.],
[ 112., 51., 72.],
[ 147., 66., 92.]])