我需要计算XMX ^ T的对角线,但不使用for循环,或者换句话说,替换以下for循环:
我知道我应该使用
X = nump.random.randn(10000, 100)
M = numpy.random.rand(100, 100)
out = numpy.zeros(10000)
for n in range(10000):
out[n] = np.dot(np.dot(X[n, :], M), X[n, :])
我知道我应该使用
numpy.einsum
,但是我还没有弄清楚如何使用。非常感谢!
np.dot(np.dot(x[n, :], M), x[n, :]).diagonal()
? - co2y