Курс 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. Оптимизация создания строк
  3. Python: Фильтрация списков с помощью filter()
  4. Открытие, чтение и закрытие файла
  5. Зарезервированные слова в Python
  6. Mad Libs Generator
  7. Замеры производительности в Python
  8. Проекты на Python
  9. Динамические маршруты во Flask
  10. Объединение словарей в Python
  11. Преобразование кортежа в словарь.
  12. Метод __iand__ для пользовательских классов
  13. Основные операции с библиотекой Numpy
  14. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  15. Python reversed() vs срез[::-1]
  16. Метод add для класса Vector
  17. Работа с модулем random
  18. Просмотр атрибутов и методов класса
  19. Подсчет элементов в Python
  20. Разработка Telegram-ботов
  21. Добавление Progressbar в Python
  22. %pinfo: получение информации об объекте
  23. Оператор in для проверки наличия элемента
  24. Проверка вхождения подстроки
  25. Вакансии в Nebius
  26. Создание графики с черепахой
  27. Форматирование данных с pprint
  28. Работа со строками в Python
  29. Управление контекстом с помощью декоратора contextmanager
  30. Работа с путями в Python
  31. Возврат нескольких значений из функции
  32. Работа с файлами в Python
  33. Идентификатор объекта в Python
  34. Работа с NumPy.linalg
  35. Новшества Flask 2.0
  36. Просмотр атрибутов и методов класса
  37. Python Поверхностное Копирование
  38. Генератор списка с условием if
  39. Python: возвращение нескольких значений
  40. Проверка однородности элементов списка
  41. Управление User-Agent в Python
  42. Оптимизация гиперпараметров с Scikit Optimize
  43. Разделение строк в Python
  44. Секреты Python
  45. Транспонирование матрицы в Python
  46. Настройка логгера Logzero
  47. Python-dateutil — работа с датами

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