Numpy уже имеет функцию shuffle
, чтобы делать то, что вы хотите.
Предполагая, что вы хотите перетасовать столбцы в том же порядке, что и предполагает ваш вопрос:
idx = np.arange(x.shape[-1]) # or x.shape[1]
np.random.shuffle(idx)
Теперь вы можете применить перетасованный индекс к вашим массивам:
x = x[..., idx] # or [:, idx] for 2D-only
y = y[..., idx]