Wenn Sie eine ganze Zahl zu einer Liste hinzuzufügen, erhalten Sie einen Fehler, der durch die __add__ Funktion der Liste angehoben bekommen (nehme ich an):Zugabe von Liste und NumPy Nummer
>>> [1,2,3] + 3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "int") to list
Wenn Sie eine Liste zu einem NumPy hinzufügen Array, gehe ich davon aus, dass die __add__ Funktion des NumPy Array die Liste in eine NumPy Array konvertiert und fügt die Listen
>>> np.array([3]) + [1,2,3]
array([4, 5, 6])
Aber was geschieht in der folgenden?
>>> [1,2,3] + np.array([3])
array([4, 5, 6])
Wie weiß die Liste, wie man mit NumPy-Arrays umgehen kann?
* "Wie weiß die Liste, wie man die Addition mit numpy Arrays behandelt." * - tut es nicht, '[1,2,3] .__ add __ (np.array ([3]))' wird fehlschlagen, aber Python kehrt die Argumente um, wenn der erste Versuch fehlschlägt und 'np.array ([3]) .__ radd __ ([1,2,3])' ('__add__' wird aufgerufen, wenn' __radd__' nicht definiert ist). – jonrsharpe
@jonrsharpe Soll nicht eher '__radd__' heißen? – Christoph
@Christoph wenn es definiert ist, ja; geklärt – jonrsharpe