Seite 1 von 1

Numpy mehrere Werte auswählen

Verfasst: Dienstag 24. Juli 2018, 19:43
von g123
Hallo Leute,

ich verstehe anscheinend nicht wirklich wie man auf mehrere Werte in Numpy Array zugreift. Hier mal ein Beispiel:
Das Ergebnis von :

Code: Alles auswählen

import numpy as np

a = (3, 3, 3)
a = np.zeros(a)

a[:][:][:1] = 4

print(a)
ist bei mir:

Code: Alles auswählen

[[[4. 4. 4.]
  [4. 4. 4.]
  [4. 4. 4.]]

 [[0. 0. 0.]
  [0. 0. 0.]
  [0. 0. 0.]]

 [[0. 0. 0.]
  [0. 0. 0.]
  [0. 0. 0.]]]
Ich hätte jetzt gedacht Python würde in jedem 'Block', in jeder 'Zeile' die ersten zwei zahlen = 4 setzen.
Noch seltsamer ist, wenn ich folgenden Code benutze:

Code: Alles auswählen

a = (3, 3, 3)
a = np.zeros(a)

a[:1][:][:] = 4

print(a)
Bekomme ich exakt das gleiche Ergebnis und auch wenn ich a[ : ][ : 1][ : ] benutze. Kann mir das einer erklären ? Wo ist mein Denkfehler? Und wie würde ich folgendes Ergebnis bekommen:

Code: Alles auswählen

[[[4. 4. 0.]
  [4. 4. 0.]
  [4. 4. 0.]]

 [[4. 4. 0.]
  [4. 4. 0.]
  [4. 4. 0.]]

 [[4. 4. 0.]
  [4. 4. 0.]
  [4. 4. 0.]]]

Re: Numpy mehrere Werte auswählen

Verfasst: Dienstag 24. Juli 2018, 19:58
von kbr
Die Indizierung funktioniert etwas anders, als Du denkst:

Code: Alles auswählen

a[:,:,:2] = 4

Re: Numpy mehrere Werte auswählen

Verfasst: Dienstag 24. Juli 2018, 20:00
von ThomasL
probier mal

Code: Alles auswählen

a[:,:,:1] = 4
a[:1,:,:] = 4
a[:,:1,:] = 4
edit: argh, zweiter

Re: Numpy mehrere Werte auswählen

Verfasst: Mittwoch 25. Juli 2018, 10:21
von MagBen
Schau dir das mal an
http://www.labri.fr/perso/nrougier/teac ... l#creation

Das Auswählen von Elementen in Numpy-Arrays (slicing) wird dort sehr gut mit Bildern erklärt.