Курс 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. Генератор надежных паролей
  3. Модуль math: константы π и e
  4. Модуль subprocess: запуск внешних команд
  5. Разрешение имен в Python
  6. Работа с IP-адресами в Python
  7. Создание .exe файла с pyinstaller
  8. Структура данных словарь в Python
  9. Библиотека itertools: объединение списков
  10. Отслеживание выполнения программы с библиотекой tqdm
  11. Скрытие вывода данных
  12. Нахождение отличий в списках
  13. Измерение времени выполнения кода
  14. Нан-рефлексивность в Python
  15. Работа с модулем random
  16. Оператор * в Python
  17. Списковые включения в Python
  18. Итераторы в Python
  19. Встроенные функции Python
  20. Оператор continue в Python
  21. Возврат нескольких значений из функции
  22. Получение атрибутов и методов класса
  23. Управление фоновыми задачами в Python
  24. Модуль pprint: улучшение вывода данных
  25. Непрерывная проверка в Python
  26. Создание словарей в Python
  27. Создание списка дат
  28. Работа с Colorama
  29. Разделение строки с помощью re.split()
  30. Декоратор total_ordering для сравнения объектов
  31. Функции-генераторы в Python
  32. Использование модуля math
  33. Настройка вывода NumPy
  34. Установка максимального количества цифр
  35. Приоритет операций в Python
  36. Сравнение объектов в Python
  37. Использование функции product
  38. Склеивание строк без циклов
  39. Выход из профиля в Django
  40. Переопределение метода
  41. Разделение строки с помощью re.split()
  42. Метод __irshift__ для побитового сдвига вправо
  43. Документирование функций в Python
  44. Асинхронное программирование с asyncio
  45. Декораторы в Python
  46. Замена текста с re.sub()
  47. Поиск индекса элемента
  48. Статическая типизация в Python

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