Я ищу объединить 3 матрицы определенным образом, я уверен, что это будет легко для тех, кто привык использовать NumPy:Numpy точечных продукты 3 матриц
w = np.array([[-0.46733567, 0.38864732],
[-0.42436867, -1.08760098],
[-1.01118741, 0.99096466]])
a = array([[ 0.63127368, 0.00167775, 0.97812284]])
d = [[-0.43252997]] # although d is length 1 in this example, its often >1 in length and code needs to be able to generalize, there will always be the same length of cols and and arrays between a and w, i.e in this example there are 3 arrays in w and 1 of length 3 in a (please excuse my terminology, I am new to linear algebra).
Я пытаюсь объединить их найти dx так, чтобы:
dx1 = [-0.46733567, 0.38864732] * 0.63127368 * -0.43252997
dx2 = [-0.42436867, -1.08760098] * 0.00167775 * -0.43252997
dx3 = [-1.01118741, 0.99096466] * 0.97812284 * -0.43252997
если d есть длина 1, например d = np.array ([[- 0,43252997], [0,87500009]]), то:
dx1_1 = [-0.46733567, 0.38864732] * 0.63127368 * -0.43252997
dx2_1 = [-0.42436867, -1.08760098] * 0.00167775 * -0.43252997
dx3_1 = [-1.01118741, 0.99096466] * 0.97812284 * -0.43252997
dx1_2 = [-0.46733567, 0.38864732] * 0.63127368 * 0.87500009
dx2_2 = [-0.42436867, -1.08760098] * 0.00167775 * 0.87500009
dx3_2 = [-1.01118741, 0.99096466] * 0.97812284 * 0.87500009
Я попробовал все из них, но, казалось бы, не имели успеха, если я что-то не хватает?
out = np.dot(d, w) * a
out = np.dot(d, w) * a.T
out = np.dot(d, w.T) * a
out = np.dot(a, w) * d
out = np.dot(a, w.T) * d
Я получаю сообщение об ошибке во многих случаях:
ValueError: shapes (3,1) and (3,2) not aligned: 1 (dim 1) != 3 (dim 0)
любые указатели, чтобы помочь решить эту проблему была бы оценена
Похоже на основную проблему линейной алгебры. У вас есть несоответствие размеров, поэтому продукт точки не будет работать –
Какие случаи * не * вы получаете эту ошибку и какую ошибку вы делаете * вы получаете? –
Ваш пример не выглядит так, как если бы вам нужен точечный продукт. Вы хотите получить 'len (a) * len (d)' вектор длины 2, правильно? – Ilja