Python 尝试使用数组值作为平均值和标准偏差创建正态分布(.rvs)时,参数中出现域错误

Python 尝试使用数组值作为平均值和标准偏差创建正态分布(.rvs)时,参数中出现域错误,python,arrays,for-loop,nested-loops,distribution,Python,Arrays,For Loop,Nested Loops,Distribution,所以我要做的是创建一个代码,为list mean_temp中的每个索引值创建一个正态分布,这就是为什么我将index=0设置为计数器的原因。它最终尝试访问列表max_temp和min_temp中的每个后续索引值(0、1、2…),以创建标准偏差。第二个循环是为每个分布创建一个随机点列表(分别从每个分布中获取)并在运行时平均值。weather_数据是从csv文件派生的数据帧,max_temp、min_temp、mean_temp是数据帧中的列,我正在将其转换为数组 我对Python和一般的编码都是新

所以我要做的是创建一个代码,为list mean_temp中的每个索引值创建一个正态分布,这就是为什么我将index=0设置为计数器的原因。它最终尝试访问列表max_temp和min_temp中的每个后续索引值(0、1、2…),以创建标准偏差。第二个循环是为每个分布创建一个随机点列表(分别从每个分布中获取)并在运行时平均值。weather_数据是从csv文件派生的数据帧,max_temp、min_temp、mean_temp是数据帧中的列,我正在将其转换为数组

我对Python和一般的编码都是新手,所以如果有任何反馈,我将不胜感激!谢谢

mean_temp = weather_data['Mean Temp (°C)']
min_temp = weather_data['Min Temp (°C)']
max_temp = weather_data['Max Temp (°C)']


mean_temp = np.array(mean_temp)
min_temp = np.array(min_temp)
max_temp = np.array(max_temp)

daily_temp_list = []

index = 0
for i in range(len(mean_temp)):
    std = (max_temp[index] - min_temp[index])/4
    data = norm.rvs(mean_temp[index], std, size=10000) 
    mu, std = norm.fit(data)
    random_choices = []
    for i in range(100):
        random_point = np.random.choice(data)
        random_choices.append(random_point)
        daily_random_temp = sum(random_choices)/len(random_choices)
    daily_temp_list.append(daily_random_temp)
    index = index + 1    
错误是 C:\Users\David\anaconda3\lib\site packages\scipy\stats\u distn\u infrastructure.py:977:RuntimeWarning:在较大值中遇到无效值 cond=逻辑和(self.\u argcheck(*args),(比例>=0)) 回溯(最近一次呼叫最后一次):

文件“C:\Users\David\Desktop\SCHOOL\Graduate\CIVENG\u 704\u R&R\montecarlo for mean temp data.py”,第212行,in 数据=标准rvs(平均温度[指数],标准,尺寸=10000)

rvs中的文件“C:\Users\David\anaconda3\lib\site packages\scipy\stats\u distn\u infrastructure.py”,第979行 raise VALUERROR(“参数中的域错误”)


ValueError:参数中的域错误。

很难说清楚,因为您没有解释
weather\u数据
来自何处,但我猜您定义
std
的方式出了问题。在调用
norm.rvs
之前,请先打印出来,然后确认它是正浮点还是整数?很抱歉,Jake,weather_数据是一个数据帧,我正试图从数据帧中提取列并将它们分配给单独的数组。您的建议有帮助-我注意到,由于我从中提取数据的CSV文件中丢失了数据,因此在循环的某个点上返回了一个Nan值(我认为已处理)。我投票结束此问题,因为这是输入错误的结果。