На самом деле не имеет значения, используете ли вы lambda
или def
или делаете вычисления с локально определенными переменными. При использовании функций количество входных аргументов должно соответствовать определению.
Но давайте продемонстрируем на простых интерактивных примерах
Определение двух переменных:
In [121]: x, y = 1,3
In [122]: x**2, x+y
Out[122]: (1, 4) # returns a tuple
Определение списка :
In [125]: vec = [1,3]
In [126]: vec[0]**2, vec[0]+vec[1]
Out[126]: (1, 4) # same tuple
или массив:
In [127]: arr = np.array([1,3])
[126]
будет работать с этим тоже, но индексация массива будет медленнее.
Массивы лучше всего, когда мы делать вещи со всем массивом, а не только с элементами. Например, мы можем возвести в квадрат все члены массива или суммировать их.
In [128]: arr**2, arr.sum()
Out[128]: (array([1, 9]), 4)
Эти вычисления будут работать с массивом любого размера, а не только с формой (2,).
Любой из вышеперечисленных кортежей может быть преобразован в массив:
In [133]: np.array([x**2, x+y])
Out[133]: array([1, 4])