Numpy matriz eficiente auto-multiplicación (matriz de gramo)

Quiero multiplicarB = A @ A.T en numpy. Obviamente, la respuesta sería una matriz simétrica (es decir,B[i, j] == B[j, i]).

in embargo, no está claro para mí cómo aprovechar esto fácilmente para reducir el tiempo de cálculo a la mitad (calculando solo el triángulo inferior deB y luego usar eso para obtener el triángulo superior gratis).

¿Hay alguna manera de realizar esto de manera óptima?

Respuestas a la pregunta(2)

Su respuesta a la pregunta