【Python】 二つのリストの対応関係を保ったままシャッフルする
リストx=[1,2,3,4]があったとして、このxと対応関係にあるリストy=[11,12,13,14]があったとします。xをシャッフルしたいのですが、この時yも対応関係を保ったままシャッフルしたいと考えています。例えばリストxがシャッフルによりx=[3,2,4,1]となった場合、yはy=[13,12,14,11]となって欲しい状況です。このやり方がStackOverflowに書かれていたのでメモします。
Numpy配列
python - Better way to shuffle two numpy arrays in unison - Stack Overflow
import numpy as np x = np.array([1,2,3,4]) y = np.array([11,12,13,14]) p = np.random.permutation(len(x)) x = x[p] y = y[p]
リスト
python - Shuffle two list at once with same order - Stack Overflow
import random x = [1,2,3,4] y = [11,12,13,14] p = list(zip(x, y)) random.shuffle(p) x, y = zip(*p)