Ich möchte zwei numpy Arrays unterschiedlicher Formen hinzufügen, aber ohne Broadcast werden eher die "fehlenden" Werte als Nullen behandelt. Wahrscheinlich am einfachsten mit einem Beispiel wieHinzufügen von numpy Arrays unterschiedlicher Formen
[1, 2, 3] + [2] -> [3, 2, 3]
oder
[1, 2, 3] + [[2], [1]] -> [[3, 2, 3], [1, 0, 0]]
Ich weiß nicht, die Formen im Voraus.
Ich bin mit der Ausgabe von np.shape für jeden zu tun, versuchen, die kleinste Form zu finden, die beide von ihnen, einbetten jedes in einem Null-ed-Array dieser Form und dann fügt sie. Aber es scheint ziemlich viel Arbeit, gibt es einen einfacheren Weg?
Vielen Dank im Voraus!
edit: von „viel Arbeit“ I „eine Menge Arbeit für mich“ zu verstehen, anstatt für die Maschine, ich suche Eleganz anstatt Effizienz: meine Bemühungen, die kleinste Form bekommen beide halten sie ist
def pad(a, b) :
sa, sb = map(np.shape, [a, b])
N = np.max([len(sa),len(sb)])
sap, sbp = map(lambda x : x + (1,)*(N-len(x)), [sa, sb])
sp = np.amax(np.array([ tuple(sap), tuple(sbp) ]), 1)
nicht recht: -/
Danke Bi, das ist ziemlich glatt – n00b