I have an m by n matrix A, implemented as a numpy array.
import numpy as np
m = 10
n = 7
A = np.random.rand(m, n)
I want to compute the m by m matrix B whose entries are
B[i, j] = sum_{k=1,...,n} sum_{l=1,...,n} A[i, k] * A[j, l]
What is the easiest way to do this without making explicit for loops?
A.dot(A.T)?sum_{k} sum_{l} A[i, k] * A[j, l], butsum_{k} A[i, k] * A[j, k], which @Divakar'sA.dot(A.T)gives you.