Using Numpy
You can use np.c_
to shuffle them together and then put them back into your separate arrays -
import numpy as np
#Creating same X and y for demonstration
X = np.arange(0,10).reshape(5,2)
y = np.arange(0,10).reshape(5,2)
c = np.c_[X,y]
np.random.shuffle(c)
X1, y1 = c[:,:X.shape[1]], c[:,:y.shape[1]]
print(X1)
print(y1)
# Note, same order remains
[[8 9]
[0 1]
[4 5]
[6 7]
[2 3]]
[[8 9]
[0 1]
[4 5]
[6 7]
[2 3]]
Using Sklearn
A better option would be to use sklearn api -
from sklearn.utils import shuffle
X, y = shuffle(X, y, random_state=0)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…