'Return the most similar users to the given user, ordered
from most similar to least.
Parameters
user_id:  int or string
ID of user for which to find most similar other users
how_many: int
Desired number of most similar users to find (default=None ALL)'

def most_similar_users(self, user_id, how_many=None):

    old_how_many = self.similarity.num_best
    self.similarity.num_best = ((how_many + 1) if (how_many is not None) else None)
    similarities = self.similarity[user_id]
    self.similarity.num_best = old_how_many
    return np.array([to_user_id for (to_user_id, pref) in similarities if ((user_id != to_user_id) and (not np.isnan(pref)))])
