Почему я получаю: TypeError: choice() принимает 2 позиционных аргумента, но 4 были заданы?

У меня есть проблема с random.choice, который я не могу понять. Я передаю 3 аргумента функции, которой разрешено иметь 4 ( http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.random.choice.html), но она пишет, что я разрешено давать только 2 и 4 дали.

def load_data():
    dataset = load_boston()
    num_samples = size(dataset.data, 0)
    test_set_sz = int(1.0 * num_samples / 10)
    tst_sub_inds = random.choice(range(num_samples), test_set_sz, False)
    data_test, label_test = dataset.data[tst_sub_inds, :], dataset.target[tst_sub_inds]
    trn_sub_inds = list(set(range(num_samples)) - set(tst_sub_inds)) 
    data_train, label_train = dataset.data[trn_sub_inds, :], dataset.target[trn_sub_inds]
    return ((data_train, label_train), (data_test, label_test))

Ошибка:

tst_sub_inds = random.choice (range (num_samples), test_set_sz, False) TypeError: choice () принимает 2 позиционных аргумента, но 4 получили Blockquote

В чем проблема? Может быть, это из-за старой версии Python?

Спасибо Эли

1 ответ

Решение

Как вы пояснили в комментариях, вы используете import random который импортирует случайную библиотеку Python.

Вы должны использовать from numpy import random, который будет импортировать Numpy's random.choice это то, что вы ожидаете.

Другие вопросы по тегам