繁体   English   中英

Numpy: TypeError: 'float' object 不能解释为 integer

[英]Numpy: TypeError: 'float' object cannot be interpreted as an integer

鉴于我有如下数据集:

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

问题是什么?

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

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

照原样,它将 pro 解释为所需样本的大小,它需要是一个 int。

您需要指定 arguments。 您的意思是“Pro”作为概率吗? 你可以通过这个来解决。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM