Маю дві матриці
a = np.matrix([[1,2], [3,4]])
b = np.matrix([[5,6], [7,8]])
і я хочу отримати елементний продукт [[1*5,2*6], [3*7,4*8]]
, рівний
[[5,12], [21,32]]
я намагався
print(np.dot(a,b))
і
print(a*b)
але обидва дають результат
[[19 22], [43 50]]
що є продуктом матриці, а не продуктом, що належить до елементів. Як я можу отримати елементний продукт (він же продукт Адамара) за допомогою вбудованих функцій?
a
та b
масиви numpy? Крім того, у вашому запитанні вище, ви використовуєте x
і y
для обчислення, а не a
і b
. Це просто друкарська помилка?
@
для множення матриць масівні масиви, а це означає, що для використання матриць над масивами не повинно бути абсолютно жодних вагомих причин.
a
і складати b
списки. Вони працюватимуть у np.dot
; але не в a*b
. Якщо ви використовуєте np.array(a)
абоnp.matrix(a)
, *
працює, але з різними результатами.
a
іb
чи не є типом матриці NumPy? За допомогою цього класу*
повертається внутрішній продукт, а не по елементах. Але для звичайногоndarray
класу це*
означає елементний продукт.