У меня есть три матовые матрицы x, r и r. Чьи значения:
x = np.array([[4,2],
[0,-1],
[-2,5],
[2,6]])
y = np.array([[1,7],
[2,6],
[5,2]])
r = np.array([[2,2,1],
[2,3,1],
[9,5,1],
[2,0,4]])
Что я собираюсь сделать, это: (трудно описать словами, поэтому я использую код для представления того, что я хочу сделать)
K = r.shape[1]
D = x.shape[1]
v = np.zeros((K, D, D))
for k in range(K):
v[k] = (r[:, k] * (x - y[k]).transpose() @ (x - y[k]))
print(v)
Последний v - это то, что мне нужно, и v равно
[[[103. 38.]
[ 38. 216.]]
[[100. 46.]
[ 46. 184.]]
[[111. -54.]
[-54. 82.]]]
Есть ли какой-нибудь элегантный или pythonic способ достичь этого без петель?
Спасибо