I have a list of N dimensional NumPy arrays.
num_vecs = 10
dims = 2
vecs = np.random.normal(size=(num_vecs, dims))
I want to normalize them, so the magnitude/length of each vector is 1. I can easily do this with a for-loop.
norm = np.linalg.norm(vecs, axis=1)
for dd in range(dims):
vecs[:, dd] /= norm
assert np.allclose(np.linalg.norm(vecs, axis=1), 1.)
But how do I get rid of the for-loop?