, out=None, dtype=None)[source]

Normalize a vector or quaternion.


Vector to normalize, can be Nx2, Nx3, or Nx4. If a 2D array is specified, rows are treated as separate vectors. All vectors should have nonzero length.

outndarray, optional

Optional output array. Must be same shape and dtype as the expected output if out was not specified.

dtypedtype or str, optional

Data type for computations can either be ‘float32’ or ‘float64’. If out is specified, the data type of out is used and this argument is ignored. If out is not provided, ‘float64’ is used by default.


Normalized vector v.

Return type



  • If the vector has length is zero, a vector of all zeros is returned after normalization.


Normalize a vector:

v = [1., 2., 3., 4.]
vn = normalize(v)

The normalize function is vectorized. It’s considerably faster to normalize large arrays of vectors than to call normalize separately for each one:

v = np.random.uniform(-1.0, 1.0, (1000, 4,))  # 1000 length 4 vectors
vn = np.zeros((1000, 4))  # place to write values
normalize(v, out=vn)  # very fast!

# don't do this!
for i in range(1000):
    vn[i, :] = normalize(v[i, :])

Back to top