Skip to main content
 首页 » 编程设计

python之为什么我得到 : TypeError: choice() takes 2 positional arguments but 4 were given

2025年05月04日9zengkefu

我无法理解 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() takes 2 positional arguments but 4 were given Blockquote

问题是什么?可能是因为旧版本的 python?

谢谢, 以利

请您参考如下方法:

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

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