2016-07-14 10 views

Antwort

2

Sie die Listen vor schlurfenden zip konnte, so dass sie dann entpacken. Es ist nicht besonders speichereffizient (da Sie die Listen im Wesentlichen während des Mischens kopieren).

a = [1,2,3] 
b = [4,5,6] 

c = zip(a, b) 
random.shuffle(c) 

a, b = zip(*c) 
2

Mit Pandas, würden Sie den Index stattdessen permutieren:

df = pd.DataFrame(np.random.choice(list('abcde'), size=(10, 2)), columns = list('AB')) 

df 
Out[39]: 
    A B 
0 c e 
1 b e 
2 c e 
3 a d 
4 e d 
5 d d 
6 b b 
7 a e 
8 e b 
9 a b 

Sampling mit frac=1 gibt Ihnen die schlurfte Datenrahmen:

df.sample(frac=1) 
Out[40]: 
    A B 
6 b b 
5 d d 
1 b e 
2 c e 
9 a b 
8 e b 
4 e d 
7 a e 
3 a d 
0 c e 
+0

@JF ich es geschrieben, weil der OP erklärte, dass er zu Pandas Lösungen offen ist. – ayhan

3

Sie können eine Liste der Indizes Shuffle:

import random 

def reorderList(l, order): 
    ret = [] 
    for i in order: 
     ret.append(l[i]) 
    return ret 

order = random.shuffle(range(len(a))) 
a = reorderList(a, order) 
b = reorderList(b, order) 
Verwandte Themen