首页 > 解决方案 > 如何修复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

我需要帮助

标签: pythonnumpy

解决方案


您需要更改atrr字典中的负数,因为该beta 函数需要非负参数。

numpy.random.beta(a, b, size=None)

a : float 或 array_like 的 float Alpha,非负数

b : float 或 array_like 的 float Beta,非负数


推荐阅读