Почему некоторые функции в numpy являются методами np.ndarray, а некоторые — функциями?Python

Программы на Python
Ответить
Anonymous
 Почему некоторые функции в numpy являются методами np.ndarray, а некоторые — функциями?

Сообщение Anonymous »

Это довольно мягкий вопрос, но я подозреваю, что понимание этого поможет мне (и, надеюсь, другим) лучше понять философию numpy (я недавно перешел из MATLAB).

Некоторые функции, такие как sum, max, transpose, conjugate и т. д., являются методами класса ndarray, поэтому можно использовать arr.sum(), или arr.sum(axis=1) и т. д.

Однако большинство функций являются функциями модуля numpy, поэтому вам нужно вызывать их как numpy.count_nonzero(arr) или numpy.roll(arr) и т. д. Многие из этих методов принимают только один объект ndarray в качестве входных данных, поэтому с точки зрения дизайна их можно рассматривать как свойства массива сам по себе.

Какова логика такого выбора дизайна?

Подробнее здесь: https://stackoverflow.com/questions/485 ... -functions
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»