Я очень удивлен тем, что abs работает в массиве numpy, но не в списках. Почему это?
import numpy as np
abs(np.array((1,-2)))
array([1, 2])
abs([1,-1])
TypeError: bad operand type for abs(): 'list'
Кроме того, встроенные функции, такие как sum, также работают с массивом numpy. Думаю, это потому, что массив numpy поддерживает __getitem__? Но в случае abs, если он зависит от __getitem__, он должен работать и для списка, но это не так.