为什么得到:TypeError:choice()接受2个位置参数,但给出了4个?

2024-09-30 14:26:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个随机选择的问题,我不能理解。我将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?

谢谢, 伊莱


Tags: testdatarangetrainrandomdatasetnumlabel
1条回答
网友
1楼 · 发布于 2024-09-30 14:26:50

正如您在注释中所阐明的,您正在使用import random导入Python的随机库。

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

相关问题 更多 >