python numpy Функция isin () возвращает неверный результат - PullRequest
0 голосов
/ 05 февраля 2020

Я использовал np.random.choice(datasize, n_train_data), чтобы перетасовать набор данных и разделить. Что касается тестирования набора данных:

np.random.seed(99)

dataset_index = np.arange(datasize)
train_index_arr = np.random.choice(dataset_index, n_train_data)
mask = ~np.isin(dataset_index, train_index_arr))
val_index_arr = dataset_index[mask]

Однако он возвращает неправильный результат. Пожалуйста, обратитесь к приведенному ниже коду:

idx = np.random.choice(range(1000), 300)
sum(~np.isin(np.arange(1000), idx))
>> 742 # expected result: 700

Что я делаю не так?

1 Ответ

2 голосов
/ 05 февраля 2020

Вам нужно установить replace = False, чтобы выбор, который вы делаете, не go возвращался в пул выбора

idx = np.random.choice(range(1000), 300, replace = False)
sum(~np.isin(np.arange(1000), idx))
Out[]: 700
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...