1 回答
TA贡献2051条经验 获得超10个赞
问题在于您使用np.random.choice您要求在 6890 个具有少于 4 个非空值的条目的数组中选择4个条目而不重用值 ( ) ,例如:replace=False
>>> np.random.choice(5, 1, replace=False, p=[0, 0, 0, 0.6, 0.4])
array([4])
>>> np.random.choice(5, 4, replace=False, p=[0, 0, 0, 0.6, 0.4])
Traceback (most recent call last):
File "<input>", line 1, in <module>
np.random.choice(5, 4, replace=False, p=[0, 0, 0, 0.6, 0.4])
File "mtrand.pyx", line 826, in numpy.random.mtrand.RandomState.choice
ValueError: Fewer non-zero entries in p than size
>>> np.random.choice(5, 4, replace=True, p=[0, 0, 0, 0.6, 0.4])
array([3, 3, 4, 3])
所以分辨率取决于你的需要,你要么确保有更多的非空值,要么在随机选择中启用替换。
作为参考,numpy.random.choice 的文档:
https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.random.choice.html
添加回答
举报