python - 如何修复ValueError:python中的a <= 0
问题描述
这是我的代码
import numpy as np
import pandas as pd
attr={'data1':((0.2,1),(0.2,1)), 'data2':((0.2,1),(-1,-0.2)),
'data3':((-1,-0.2),(0.2,1)), 'data4':((-1,-0.2),(0.2,1))}
name = ['data1', 'data2', 'data3', 'data4']
for k in range(4):
X=np.random.beta(attr[name[k]][0][0], attr[name[k]][0][1],10)
Y=np.random.beta(attr[name[k]][1][0], attr[name[k]][1][1],10)
name[k] = pd.DataFrame({'x':X,'y':Y})
我得到这个错误
文件“mtrand.pyx”,第 1709 行,在 mtrand.RandomState.beta 值错误:a <= 0
我需要帮助
解决方案
您需要更改atrr
字典中的负数,因为该beta
函数需要非负参数。
numpy.random.beta(a, b, size=None)
a : float 或 array_like 的 float Alpha,非负数。
b : float 或 array_like 的 float Beta,非负数。