Эффективный способ перераспределения (random.shuffle) - PullRequest
0 голосов
/ 23 января 2019

Итак, у меня есть код, похожий на:

def shuffling(X,t):
    n = 100
    permute = list(range(n * 2))
    random.shuffle(permute)
    X = X[:, permute]
    t = t[permute]
    return X,t

X = 3 x 200 и t = 200 x 1, я хочу перетасовать эти две матрицы так, чтобы каждый столбец заканчивался соответствующим целевым значением в t. Я хотел сделать это с помощью random.shuffle, но, очевидно, я не могу указать ось для элементов, и мне кажется уродливым дважды использовать numpy transpose, потому что в конце дня мне нужно, чтобы значение X было 3x200. У кого-нибудь есть предложения, как мне это сделать?

1 Ответ

0 голосов
/ 23 января 2019

Используйте np.random.permutation для генерации перетасованного индекса для обоих массивов:

import numpy as np

def shuffling(X,t):
    r = np.random.permutation(len(t))
    X = X[:, r]
    t = t[r]
    return X, t
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...