为什么我得到:TypeError:choice()需要2个位置参数,但是给出4个?

时间:2016-05-26 06:24:12

标签: python random choice

我对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个   块引用

有什么问题?也许是因为旧版的python?

谢谢, 利

1 个答案:

答案 0 :(得分:7)

正如您在评论中澄清的那样,您正在使用导入Python随机库的import random

您应该使用from numpy import random,这将导入Numpy的random.choice,这是您期望的那个。