Курс Python → Оператор @ для умножения матриц

Оператор @ в Python представляет собой оператор для умножения матриц. Этот оператор был добавлен в Python 3.5 с целью удовлетворения запросов научного сообщества. В отличие от обычного умножения (*), который используется для умножения чисел или строк, оператор @ предназначен специально для работы с матрицами. Это делает код более читаемым и понятным, особенно при работе с линейной алгеброй.

Для того чтобы использовать оператор @ для умножения матриц, необходимо перегрузить метод __matmul__ в классе объекта. Этот магический метод позволяет определить поведение оператора @ для конкретного типа объекта. Например, если у нас есть класс Matrix, мы можем перегрузить метод __matmul__, чтобы определить умножение матриц для объектов этого класса.


class Matrix:
    def __init__(self, data):
        self.data = data
    
    def __matmul__(self, other):
        # Определение умножения матриц для объектов класса Matrix
        pass

После того как мы перегрузили метод __matmul__ в классе Matrix, мы можем использовать оператор @ для умножения матриц, создавая экземпляры этого класса. Например:


matrix1 = Matrix([[1, 2], [3, 4]])
matrix2 = Matrix([[5, 6], [7, 8]])

result = matrix1 @ matrix2
print(result)

Таким образом, оператор @ предоставляет удобный способ умножения матриц в Python, делая код более читаемым и понятным при работе с линейной алгеброй.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Секреты Python
  2. Анонимные функции Lambda
  3. Работа со случайными элементами
  4. Оператор морж в Python 3.8
  5. Работа с JSON в Python
  6. Переопределение метода __rshift__
  7. Работа с путями в Python
  8. Создание новых функций с помощью functools.partial
  9. Блок try…finally в Python
  10. Методы работы со списками
  11. Поиск индекса элемента в списке
  12. Транспонирование 2D-массива с помощью zip
  13. Динамическая типизация в Python
  14. Подчеркивание в REPL
  15. Ввод нескольких значений
  16. Работа с NumPy.linalg
  17. Частичное совпадение пользовательского ввода в Python 3.10
  18. Генераторы в Python
  19. Модуль xkcd: добавление юмора в Python
  20. Работа с очередями в Python
  21. Метод clear для коллекций
  22. Проблема с изменяемыми аргументами
  23. Работа с базами данных SQLite
  24. Подсчет элементов с помощью Counter из collections
  25. Модуль array: создание и использование массивов
  26. Поиск частого элемента
  27. Оптимизация строк в Python
  28. Показ всплывающих окон Tkinter
  29. Область видимости переменных
  30. Управление виртуальными средами в Python
  31. Метод rename() для переименования файлов и каталогов
  32. Получение значений из словарей
  33. Модуль sys: основы
  34. Удаление ключей из словаря
  35. Роль object и type в Python
  36. Ограничение ресурсов в Python
  37. Распаковка аргументов в Python
  38. Оператор += в Python
  39. Многострочные комментарии в Python
  40. Строковое представление объектов
  41. Улучшение читаемости кода в Python
  42. Разрешение имен в Python
  43. Применение команды break
  44. Разность множеств
  45. Оператор break в Python
  46. Работа с Path в Python
  47. GitHub в Telegram: подписка на уведомления
  48. Срез списка в Python
  49. Таймер обратного отсчета

Marketello читают маркетологи из крутых компаний