Standardizing an Array

One of the most common task is standardizing a vector. This can be used for example to compare expression data or to standardize ranges before applying machine learning methods.
In standard python it could be written like this:

 #Suppose a list l with many elements
 mean_tmp = std_tmp = 0.0
 for val in l:
     mean_tmp += val
     std_tmp += val*val
 mean = mean_tmp/len(l)
 std = std_tmp/len(l) - mean*mean

 standardized_l = []
 for val in l:
     standardized_l.append((val-mean)/std)

By using List comprehensions the task is somewhat shorter:

 mean_tmp = std_tmp = 0.0
 for val in l:
     mean_tmp += val
     std_tmp += val*val
 mean = mean_tmp/len(l)
 std = std_tmp/len(l) - mean*mean

 standardized_l = [(val-mean)/std for val in l]

With numpy:

 #The list must first be converted to a numpy array, otherwise
 #no methods nor vectorized operations would be available
 l_np = np.array(l)
 standardized_l = (l_np-l_np.mean())/l_np.std()