So I found  torch.cdist creates a Euclidean distance matrix.
So getting the average shouldn’t be an issue.
I noticed cdist doesn’t support complex matrices. But that’s fine. I can just do this:
vector_dims=10
n_vectors=100

A = torch.rand(n_vectors, vector_dims, dtype=torch.cfloat)

B = torch.cdist(A.real, A.real)

C = torch.cdist(A.imag, A.imag)

E_dist = (B**2 + C**2)**0.5

Avg_dist = torch.sum(E_dist) / (n_vectors*(n_vectors-1)))