Seite 1 von 1

KLeine Matrix in Große Matrix schreiben

Verfasst: Freitag 22. August 2014, 14:50
von Detektor
Ich habe mich jetzt enige Zeit mit Matrizen in Numpy beschäftigt. Viele sachen bekomme ich hin und wie ich einen Wert an eine Stelle eines Arrays schreibe, hab ich auch verstanden, denke ich. Nun möchte ich aber eine kleine Matrix B in eine große Matrix A schreiben. Und zwar an eine beliebige Position.

Code: Alles auswählen

>>>import numpy as np
>>>A= np.zeros([10,10])
array([[ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.]])
>>>B= np.ones([4,4])
array([[ 1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.]])

Wie kann man die kleine Matrix B an eine beliebige Stelle der großen Matrix A schreiben, so dass man etwas erhält wie z.B.:

Code: Alles auswählen


C= array([[ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  1.,  1.,  1.,  1.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  1.,  1.,  1.,  1.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  1.,  1.,  1.,  1.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  1.,  1.,  1.,  1.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.]])

Bietet numpy da eine zwei-Zeilen-Lösung, die ich nicht gefunden habe?

Danke für eure Antworten

Re: KLeine Matrix in Große Matrix schreiben

Verfasst: Freitag 22. August 2014, 14:56
von Sirius3
@Detektor: nein, nur eine Einzeilenlösung (Index-Slices).

Re: KLeine Matrix in Große Matrix schreiben

Verfasst: Freitag 22. August 2014, 19:07
von MagBen

Code: Alles auswählen

A[3:7,3:7]=B