Обратите внимание на степень вложенности:
Список из 2 массивов:
In [93]: sum([np.array([1, 2, 3]), np.array([6, 5, 4])])
Out[93]: array([7, 7, 7])
Список из 1 массива:
In [94]: sum([np.array([1, 2, 3])])
Out[94]: array([1, 2, 3])
Один массив, не список
In [95]: sum(np.array([1, 2, 3]))
Out[95]: 6
Список чисел:
In [96]: sum([1, 2, 3])
Out[96]: 6
sum
повторяет аргумент, будь то список или массив. [93] работает, потому что массивы реализуют свой собственный метод суммирования. Он не работает со списком списков.
Убедившись, что содержимое является двумерным массивом, обобщаются следующие случаи:
In [102]: sum(np.atleast_2d([[1, 2, 3], [6, 5, 4]]))
Out[102]: array([7, 7, 7])
In [103]: sum(np.atleast_2d([np.array([1, 2, 3]), np.array([6, 5, 4])]))
Out[103]: array([7, 7, 7])
In [104]: sum(np.atleast_2d([np.array([1, 2, 3])]))
Out[104]: array([1, 2, 3])
In [105]: sum(np.atleast_2d(np.array([1, 2, 3])))
Out[105]: array([1, 2, 3])
In [106]: sum(np.atleast_2d([1, 2, 3]))
Out[106]: array([1, 2, 3])
Или используйте сумму numpy с осью 0:
In [108]: np.atleast_2d([np.array([1, 2, 3]), np.array([6, 5, 4])]).sum(axis=0)
Out[108]: array([7, 7, 7])
In [109]: np.atleast_2d(np.array([6, 5, 4])).sum(axis=0)
Out[109]: array([6, 5, 4])