Курс 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"
- Создание пользовательской коллекции в Python
- Оптимизация создания строк
- Python: Фильтрация списков с помощью filter()
- Открытие, чтение и закрытие файла
- Зарезервированные слова в Python
- Mad Libs Generator
- Замеры производительности в Python
- Проекты на Python
- Динамические маршруты во Flask
- Объединение словарей в Python
- Преобразование кортежа в словарь.
- Метод __iand__ для пользовательских классов
- Основные операции с библиотекой Numpy
- Перезапуск ячейки в Jupyter Notebook с dostoevsky
- Python reversed() vs срез[::-1]
- Метод add для класса Vector
- Работа с модулем random
- Просмотр атрибутов и методов класса
- Подсчет элементов в Python
- Разработка Telegram-ботов
- Добавление Progressbar в Python
- %pinfo: получение информации об объекте
- Оператор in для проверки наличия элемента
- Проверка вхождения подстроки
- Вакансии в Nebius
- Создание графики с черепахой
- Форматирование данных с pprint
- Работа со строками в Python
- Управление контекстом с помощью декоратора contextmanager
- Работа с путями в Python
- Возврат нескольких значений из функции
- Работа с файлами в Python
- Идентификатор объекта в Python
- Работа с NumPy.linalg
- Новшества Flask 2.0
- Просмотр атрибутов и методов класса
- Python Поверхностное Копирование
- Генератор списка с условием if
- Python: возвращение нескольких значений
- Проверка однородности элементов списка
- Управление User-Agent в Python
- Оптимизация гиперпараметров с Scikit Optimize
- Разделение строк в Python
- Секреты Python
- Транспонирование матрицы в Python
- Настройка логгера Logzero
- Python-dateutil — работа с датами















