Ich habe ein paar Probleme zu verstehen, wie Python/Numpy Array-Formen beim Vergleich mit einer leeren Liste wirft - was soweit ich verstehe - ist ein impliziter (elementweiser) Vergleich mit False.Form eines numpigen Array Vergleich mit einer leeren Liste
Im folgende Beispiel nimmt die Form, die durch einen in der letzten Dimension, wenn es nicht mehr als 1.
z = N.zeros((2,2,1))
z == []
>> array([], shape=(2, 2, 0), dtype=bool)
z2 = N.zeros((2,2,2))
z2 ==[]
>> False
ist Wenn ich aber vergleichen mit falschem direkt, ich die erwarteten Ausgabe erhalten.
z = N.zeros((2,2,1))
(z == False).shape
>> (2, 2, 2)
z2 = N.zeros((2,2,2))
(z2 == False).shape
>> (2, 2, 1)
Ich verstand die Übertragung immer als Erweiterung der Ausgabe-Array auf die maximale Form der beiden Eingabe-Arrays (falls zutreffend). In diesem Fall ist das nicht wahr. Danke fürs klarstellen! – dbacc
Nur Größe '1' Dimensionen werden geändert, um mit den anderen übereinzustimmen. Eine Größe "2" wird niemals auf die Größe "4" erweitert. Ich hätte die Sendefolge wie folgt beschrieben: (2,2,1), (0,) => (2,2,1), (1,1,0) => (2,2,0) '. Alle "1" wurden geändert. – hpaulj