Numpy:类型错误:“float”对象不能解释为整数

ycl3bljg  于 2023-01-05  发布在  其他
关注(0)|答案(2)|浏览(161)

鉴于我有一个数据集如下:

dict = {
    "No": list(range(1,9)),
    "Pro":  [0.6703557312252965, 0.20395256916996046, 0.0782608695652174, 0.03241106719367589, 0.009486166007905139, 0.0031620553359683794, 0.0015810276679841897, 0.0007905138339920949]
}

dt = pd.DataFrame(dict)

我需要根据“Pro“列从“NO“列生成一个数字:

noList = dt["No"].tolist()
pro = dt["Pro"].tolist()
print("NoList", noList, " Pro: ", pro)
randomPolypNo = np.random.choice(noList, pro)

但是,它抱怨:

TypeError: 'float' object cannot be interpreted as an integer

出了什么问题?

wh6knrhe

wh6knrhe1#

我认为你需要指定pro是你的概率分布。

randomPolypNo = np.random.choice(noList, p=pro)

实际上,它将pro解释为所需样本的大小,这需要是一个int。

weylhg0b

weylhg0b2#

你需要指定参数。你的意思是“赞成”作为概率吗?你可以这样解决它。

randomPolypNo = np.random.choice(a=noList, p=pro)

相关问题