def permute_rows(m, seed=None): """ Permute the rows of a matrix in-place Parameters ---------- m : array-like A 2-d array seed : RandomState instance or {None, int, RandomState instance} If None, the pseudorandom number generator is the RandomState instance used by `np.random`; If int, seed is the seed used by the random number generator; If RandomState instance, seed is the pseudorandom number generator Returns ------- None Original matrix is permuted in-place, nothing is returned. """ prng = get_prng(seed) mprime = [] for row in m: mprime.append(random_permutation(row, prng=prng)) return np.array(mprime)
def permute_within_groups(x, group, seed=None): """ Permutation of condition within each group. Parameters ---------- x : array-like A 1-d array indicating treatment. group : array-like A 1-d array indicating group membership seed : RandomState instance or {None, int, RandomState instance} If None, the pseudorandom number generator is the RandomState instance used by `np.random`; If int, seed is the seed used by the random number generator; If RandomState instance, seed is the pseudorandom number generator Returns ------- permuted : array-like The within group permutation of x. """ prng = get_prng(seed) permuted = x.copy() for g in np.unique(group): gg = group == g permuted[gg] = random_permutation(permuted[gg], prng=prng) return permuted
def permute(x, seed=None): """ Permute an array in-place Parameters ---------- x : array-like A 1-d array seed : RandomState instance or {None, int, RandomState instance} If None, the pseudorandom number generator is the RandomState instance used by `np.random`; If int, seed is the seed used by the random number generator; If RandomState instance, seed is the pseudorandom number generator Returns ------- None Original array is permuted in-place, nothing is returned. """ return random_permutation(x, prng=seed)