Курс 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
- Функция reduce() из модуля functools
- Избегайте пустого списка
- Метод gt в Python
- Ускоренный импорт библиотек
- Обработка ошибок в Python
- Работа со случайными элементами
- Операторы Splat и splatty-splat
- Оператор in и not in в Python
- Использование модуля __future__
- Уникальность ключей в словаре
- Установка и использование TensorFlow
- Списки: объединение, изменение
- Ошибка NotImplemented в Python
- Измерение времени выполнения кода с помощью time
- Работа с модулем os в Python
- Удаление ресурса в Python
- Склеивание строк без циклов
- Использование функции product
- Принципы программирования
- Транспонирование 2D-массива с помощью zip
- Сортировка с помощью key
- Объединение словарей в Python
- Частичное применение функций в Python
- Создание циклической ссылки
- Создание копии итератора
- Импортирование в Python
- Присвоение и ссылки
- Импорт и использование модулей в Python
- Расчет времени выполнения программы
- Проверка условий: all и any
- Оптимизация памяти с slots
- Контекстный менеджер в Python
- Проверка кортежей.
- Передача словаря через **kwargs
- Работа с zip()
- Метод is_absolute() для PurePath
- Метод __iand__ для пользовательских классов
- Combobox в Tkinter
- Основы слова
- Переопределение метода __or__()
- Определение основы слова с showballstemmer
- Передача аргументов в Python
- Перемешивание списка с shuffle()















