Курс 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. Возврат нескольких значений
  2. Обработка аргументов Python
  3. Функция all() в Python
  4. Компиляция регулярных выражений
  5. Метод ne для сравнения объектов
  6. Метод index() в Python
  7. Подсказки типов в Python
  8. Обучение модели с указанием эпох
  9. Метод clear для коллекций
  10. Хеши в Python
  11. Блок else в обработке исключений
  12. Проблемы с dict в Python
  13. Принципы Zen of Python
  14. Работа с модулем cmath
  15. Абстракции словарей и множеств в Python
  16. Работа с deque из collections
  17. Создание графиков в терминале
  18. Сложные типы данных в Python
  19. Форматирование данных с помощью pprint
  20. Применение функции map() с лямбда-функциями
  21. Метод splitlines() для разделения строк
  22. Метод __int__ в Python
  23. Работа с путями в Python
  24. Решатель судоку на Python с pygame
  25. Возврат нескольких значений из функции
  26. PUT запрос для обновления данных
  27. Генераторы списков в Python
  28. Активация Matplotlib в Jupyter
  29. Удаление первого элемента списка
  30. Генераторы в Python
  31. Обработка ошибок ввода данных
  32. Печать календаря
  33. Функция zip() в Python
  34. Функции map, filter, reduce
  35. Вывод сложных структур данных с помощью pprint
  36. Замена элементов в списке с помощью генераторов списков
  37. Конвертация коллекций в Python
  38. Методы HTTP запросов в Flask
  39. Создание уникального проекта
  40. Печать месячного календаря
  41. Удаление ключа из словаря
  42. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  43. Перемешивание списка с shuffle()
  44. Чтение и запись TOML-конфигов
  45. Списковое включение в Python
  46. Обработка исключений в Python 3
  47. Метод сравнения объектов в Python

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