Numpy Performance - Outer Product of a vector with its transpose
It is my understanding that the Outer Product of a vector with its transpose is symmetric in value. Does Numpy take this into account to only do the multiplications for the upper triangle part of the output or does it calculate the whole output matrix (even though it is symmetric and time + memory could go to waste?) Exploring some alternatives: In [162]: x=np.arange(100) In [163]: np.outer(x,x) Out[163]: array([[ 0, 0, 0, ..., 0, 0, 0], [ 0, 1, 2, ..., 97, 98, 99], [ 0, 2, 4, ..., 194, 196, 198], ..., [ 0, 97, 194, ..., 9409, 9506, 9603], [ 0, 98, 196, ..., 9506, 9604, 9702], [ 0, 99, 198, ..