У меня есть конкретная проблема с умножением матриц в numpy.Вот пример:
P=np.arange(30).reshape((-1,3))
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17],
[18, 19, 20],
[21, 22, 23],
[24, 25, 26],
[27, 28, 29]])
Я хочу умножить каждую строку на ее транспонирование, чтобы получить матрицу 3x3 для каждой строки, например, для первой строки:
P[0]*P[0][:,np.newaxis]
array([[0, 0, 0],
[0, 1, 2],
[0, 2, 4]])
и сохранить результат в 3-й матрице M:
M=np.zeros((10,3,3))
for i in range(10):
M[i] = P[i]*P[i][:,np.newaxis]
Я думаю, что может быть способ сделать это без зацикливания, возможно, с тензорной точкой, но не может найти его.
У кого-то есть идея?