from statistics import mean, pstdev rewards = [1.0, 0.0, 1.0, 0.0] group_mean = mean(rewards) group_std = pstdev(rewards) # Equal rewards give us nothing to rank within this group. if group_std == 0: advantages = [0.0] * len(rewards) else: advantages = [(r - group_mean) / group_std for r in rewards] print(advantages) # [1.0, -1.0, 1.0, -1.0]