Разница между NumPy.dot () и операцией '*' в Python

Опубликовано: 27 Декабря, 2021

В Python, если у нас есть два массива numpy, которые часто называют вектором. Оператор '*' и numpy.dot() работают с ними по-разному. Это важно знать, особенно когда вы имеете дело с наукой о данных или проблемой конкурентного программирования.

Работа оператора '*'

Операция '*' выполняет поэлементное умножение элементов массива. Элемент в a[i][j] умножается на b[i][j] Это происходит для всех элементов массива.

Пример:

 Пусть два 2D-массива - это v1 и v2: -
v1 = [[1, 2], [3, 4]]
v2 = [[1, 2], [3, 4]]

Выход:
[[1, 4]
[9, 16]]
С нижнего рисунка было бы понятно.

Работа numpy.dot ()

Он несет нормальное матричное умножение. Если условие количества столбцов первого массива должно быть равно количеству строк второго массива, проверяется, чем numpy.dot() иначе отображается ошибка.
Пример:

Let the two 2D array are v1 and v2:-
v1=[[1, 2], [3, 4]]
v2=[[1, 2], [3, 4]]
Than numpy.dot(v1, v2)  gives output of :-
[[ 7 10]
 [15 22]]

Примеры 1:

import numpy as np
# vector v1 of dimension (2, 2)
v1 = np.array([[ 1 , 2 ], [ 1 , 2 ]])
# vector v2 of dimension (2, 2)
v2 = np.array([[ 1 , 2 ], [ 1 , 2 ]])
print ( "vector multiplication" )
print (np.dot(v1, v2))
print ( " Elementwise multiplication of two vector" )
print (v1 * v2)
Выход :
векторное умножение
[[3 6]
 [3 6]]

Поэлементное умножение двух векторов
[[1 4]
 [1 4]]

Примеры 2:

import numpy as np
v1 = np.array([[ 1 , 2 , 3 ], [ 1 , 2 , 3 ], [ 1 , 2 , 3 ]])
v2 = np.array([[[ 1 , 2 , 3 ], [ 1 , 2 , 3 ], [ 1 , 2 , 3 ]]])
print ( "vector multiplication" )
print (np.dot(v1, v2))
print ( " Elementwise multiplication of two vector" )
print (v1 * v2)
Выход :
векторное умножение
[[6 12 18]
 [6 12 18]
 [6 12 18]]

Поэлементное умножение двух векторов
[[1 4 9]
 [1 4 9]
 [1 4 9]]

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.