SyntaxError с пониманием списка в операторе «not in» - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь случайным образом разбить список X с len(X) = 150 на два списка X_train и X_test с len(X_train) = 105 и len(X_test) = 45.

split = np.random.choice(150, 105)
X_train = [X[i] for i in split]
X_test = [X[i] for i not in split]

Но в строке 3 Я получаю SyntaxError.

Как бы я сделал это правильно?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Если у вас есть список для разделения, вы можете просто нарезать его

from random import randint

a = [1,2,3,4,5,6,7,8,9,10]
s = randint(0, len(a))
print(a[:s])
print(a[s:])
0 голосов
/ 27 апреля 2020

Вы можете достичь этого с помощью

split = random.sample(range(len(X)), 105)
X_train = [X[i] for i in split]
X_test = [X[i] for i in [i for i in [i for i in range(len(X)) if i not in split]]]

Это создаст вам список случайного уникального числа из 105 предметов и будет, а затем он извлечет в X_train все индексы случайных чисел и в X_test это будет Извлеките все 45 чисел, которых нет в разделенном списке.

...