Если вы добавите целое число в список, вы получите ошибку, вызванную функцией __add__ в списке (я полагаю):
>>> [1,2,3] + 3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "int") to list
Если вы добавите список в массив NumPy, я предполагаю, что функция __add__ массива NumPy преобразует список в массив NumPy и добавляет списки
>>> np.array([3]) + [1,2,3]
array([4, 5, 6])
Но что происходит в следующем?
>>> [1,2,3] + np.array([3])
array([4, 5, 6])
Как список знает, как обрабатывать добавление с массивами NumPy?