python计算N年一遇的降水经历

该代码片段展示了如何利用numpy、pandas和scipy库中的genextreme函数对数据进行拟合,计算不同年份(如5年、10年等)的回归期水平。它首先读取数据,然后拟合广义极值分布,最后计算并打印出各个回归期对应的水位。
Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

借助此文方法

# -*- coding: utf-8 -*-
"""
@Features of this code:重现期
@Author: zlf
@Date:
"""
import numpy as np
import pandas as pd
from scipy.stats import genextreme


def return_periods(data, years=[5, 10, 20, 50, 100]):
    data = np.array(data)  # data为ndarray格式
    # Fit the generalized extreme value distribution to the data.
    shape, loc, scale = genextreme.fit(data)
    print("Fit parameters:")
    print(f"  shape: {shape:.4f}")
    print(f"  loc:   {loc:.4f}")
    print(f"  scale: {scale:.4f}")
    # Compute the return levels for several return periods.
    return_periods = np.array(years)
    return_levels = genextreme.isf(1 / return_periods, shape, loc, scale)
    print("Return levels:")
    print("Period    Level")
    for period, level in zip(return_periods, return_levels):
        print(f'{period:4.0f}  {level:9.2f}')


if __name__ == '__main__':
    data = pd.read_excel(r'D:\降水量.xlsx')
    return_periods(data)
————————————————
版权声明:本文为优快云博主「毛发浓密的猿工」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/weixin_46604505/article/details/107231556

-------------------------------

测试:

csv文件读取

da=pd.read_csv(r'D:\t3.csv',header=None)

data=pd.DataFrame(da)

return_periods(data, years=[2,5, 10, 20, 50, 100])

 

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值