numpy subtrahieren/hinzufügen, 1d-Arrays aus 2d-Arrays

Ich habe folgende 2D-array:

a = array([[ 1,  2,  3],
           [ 4,  5,  6],
           [ 7,  8,  9],
           [10, 11, 12],
           [13, 14, 15]])

und anderen 1D-array:

b = array([ 1,  2,  3,  4,  5])

dann möchte ich berechnen, so etwas wie

c = a - b

mit der Absicht, immer:

c = array([[0, 1,  2],
           [2, 3,  4],
           [4, 5,  6],
           [6, 7,  8],
           [8, 9, 10]])

aber stattdessen bekomme ich die Fehlermeldung:

Traceback (most recent call last):
  Python Shell, prompt 79, line 1
ValueError: operands could not be broadcast together with shapes (5,3) (5,)

Ich lese den Rundfunk Regeln, aber nicht klüger. Ich könnte einen workaround mit for-Schleifen oder ähnliches, aber es sollte eine direkte Art und Weise. Dank

  • Tun a - b[:,None] oder a - b[:,np.newaxis],, das wird konvertieren b zu einem 2D-array durch das hinzufügen einer dimension zu tun, und dann die Subtraktion.
  • sollten Sie eine Antwort aus Ihrem Kommentar.
  • Ist das nicht eine grundlegende Frage, wie dieser gedeckt werden, bevor auf SO? Dup-hammer? 🙂
InformationsquelleAutor leofields | 2015-10-23
Schreibe einen Kommentar