Курс 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. Библиотека wikipedia для Python
  2. Объединение Python и Shell
  3. Фильтрация списков с itertools
  4. Изменение IP-адреса в Python
  5. Настройка вывода NumPy
  6. Функции min(), max(), sum()
  7. Метод rmatmul для пользовательских матриц
  8. Обработка исключений в Python
  9. Метод join для наборов
  10. Сериализация данных в JSON с помощью json.dumps
  11. Progress с библиотекой tqdm
  12. Подсказки при вводе данных в Python
  13. Работа с collections в Python
  14. Оператор @ для умножения матриц
  15. Лямбда-функции для min/max
  16. Область видимости переменных в Python
  17. Управление контекстом выполнения кода
  18. Метод split() в Python
  19. Установка и использование Virtualenv
  20. Переопределение метода __pow__
  21. Генерация фальшивых данных с Faker
  22. Замена текста с помощью sub
  23. Использование обратной косой черты в f-строках
  24. Обрезка изображения с Pillow
  25. Генераторы данных
  26. Преобразование вложенного списка
  27. Блок try…finally в Python
  28. Эффективная конкатенация строк в Python
  29. Асинхронный код в Python
  30. Наиболее частотные элементы с помощью Counter
  31. Передача аргументов через **arguments
  32. Работа с комплексными числами
  33. Функции с необязательными аргументами
  34. Создание списков в Python
  35. Цикл while в Python
  36. Логирование с Logzero: ротация файла
  37. Названия столбцов в Python таблицах
  38. Извлечение новостей с помощью newspaper3k
  39. Решение переменной Шредингера
  40. Регистрация на TenChat
  41. Логирование с Logzero
  42. Блок else в циклах Python
  43. Модуль inspect
  44. Создание копии списка в Python
  45. Функция enumerate в Python

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