psychopy.tools.mathtools.
normalize
(v, 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.
Optional output array. Must be same shape and dtype as the expected output if out was not specified.
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.
ndarray
Notes
If the vector has length is zero, a vector of all zeros is returned after normalization.
Examples
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, :])