Курс 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. Функция reduce() из модуля functools
  3. Избегайте пустого списка
  4. Метод gt в Python
  5. Ускоренный импорт библиотек
  6. Обработка ошибок в Python
  7. Работа со случайными элементами
  8. Операторы Splat и splatty-splat
  9. Оператор in и not in в Python
  10. Использование модуля __future__
  11. Уникальность ключей в словаре
  12. Установка и использование TensorFlow
  13. Списки: объединение, изменение
  14. Ошибка NotImplemented в Python
  15. Измерение времени выполнения кода с помощью time
  16. Работа с модулем os в Python
  17. Удаление ресурса в Python
  18. Склеивание строк без циклов
  19. Использование функции product
  20. Принципы программирования
  21. Транспонирование 2D-массива с помощью zip
  22. Сортировка с помощью key
  23. Объединение словарей в Python
  24. Частичное применение функций в Python
  25. Создание циклической ссылки
  26. Создание копии итератора
  27. Импортирование в Python
  28. Присвоение и ссылки
  29. Импорт и использование модулей в Python
  30. Расчет времени выполнения программы
  31. Проверка условий: all и any
  32. Оптимизация памяти с slots
  33. Контекстный менеджер в Python
  34. Проверка кортежей.
  35. Передача словаря через **kwargs
  36. Работа с zip()
  37. Метод is_absolute() для PurePath
  38. Метод __iand__ для пользовательских классов
  39. Combobox в Tkinter
  40. Основы слова
  41. Переопределение метода __or__()
  42. Определение основы слова с showballstemmer
  43. Передача аргументов в Python
  44. Перемешивание списка с shuffle()

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