Курс 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. Создание вложенных циклов for
  2. Декораторы в Python
  3. Получение списка файлов в директории с использованием os
  4. Переопределение метода len
  5. Управление виртуальными окружениями в Python
  6. Определение индекса элемента списка
  7. Генераторы списков в Python
  8. Объединение коллекций в Python
  9. Метод splitlines() для разделения строк
  10. Вычисление логарифмов в Python
  11. Progress с библиотекой tqdm
  12. Регулярные выражения: метод match
  13. Фильтрация списка от «ложных» значений
  14. Переворот строки
  15. OrderedDict — упорядоченный словарь
  16. Поиск шаблона в начале строки
  17. Запуск файлового сервера
  18. Работа с датами в Python
  19. Многоточие в Python
  20. Псевдонимы в Python
  21. Различия символов в Python
  22. Сохранение и загрузка модели в PyTorch
  23. Проверка надежности пароля на Python
  24. Ускорение обработки данных с %autoawait
  25. Оператор in для Python
  26. Поиск подстроки в строке
  27. Работа с атрибутом dict
  28. Преобразование объекта в строку
  29. Генератор чисел Фибоначчи
  30. Декораторы классов
  31. Обмен данными с asyncio.Queue
  32. Работа с индексами списков
  33. Создание словаря через dict comprehension
  34. Установка Git и AWS CLI
  35. Метод __complex__ в Python
  36. Python: Splat-оператор и splatty-splat
  37. Управление импортом в Python
  38. Поиск с помощью регулярных выражений
  39. Переменная Шредингера
  40. Копирование объектов в Python
  41. Обмен переменными в Jupyter
  42. Работа с timedelta в Python
  43. Игра Виселица на Python
  44. Лямбда-функции в цикле
  45. Структуры данных в Python
  46. Получение текущей директории
  47. Проверка запуска скрипта или импорта модуля
  48. Функция __init__ в Python

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