Курс 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. Методы split() и join() — Python строк.
  2. Эффективная конкатенация строк в Python
  3. Карта бомбоубежищ в Москве и Питере
  4. Распаковка с оператором *
  5. Работа с deque из collections
  6. Создание детектора плагиата
  7. Измерение времени выполнения кода с помощью time
  8. Извлечение аудио из видео
  9. Проверка ввода с помощью isdigit
  10. Преобразование Excel в PDF с Spire.XLS
  11. Асинхронное программирование с asyncio
  12. Роль object и type в Python
  13. Оптимизация поиска в словарях
  14. Проверка типов с помощью isinstance
  15. Функции map, filter и reduce
  16. Работа с индексами списков
  17. Принципы программирования
  18. Переопределение оператора % для объектов
  19. Оператор обр. импликации
  20. Функциональное программирование в Python
  21. Удаление элемента из списка
  22. Установка Python3.7 и PIP
  23. Решатель судоку на Python с pygame
  24. Управление мышью и клавиатурой с Pyautogui
  25. Работа с файлами в Python
  26. Методы работы со строками в Python
  27. JSON-esque в Python
  28. Отступы в Python
  29. Метод join() с набором
  30. Python Translator: создание локальных переводчиков
  31. Установка и использование emoji
  32. Умножение строк и списков
  33. Оператор «is not» в Python
  34. Список переменных в Python
  35. Переопределение метода len
  36. Создание пользовательской коллекции в Python
  37. Отправка POST-запроса в REST API
  38. Генерация случайных данных в NumPy
  39. *args и **kwargs в Python
  40. Изменение IP-адреса в Python
  41. Преобразование символов в нижний регистр
  42. Фильтрация элементов с помощью islice
  43. Измерение времени выполнения кода
  44. Преобразование вложенного списка
  45. Доступ к локальным переменным
  46. Работа с необработанными строками
  47. Метод radd для пользовательских чисел
  48. Отображение HTML кода в Python

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