【优秀python算法毕设】基于python时间序列模型分析气温变化趋势的设计与实现

news2024/11/28 5:42:44

1 绪论

1.1 研究背景与意义

在气候变化日益受到全球关注的背景下,天气气温的变化已经对人们的生活各方面都产生了影响,人们在外出时大多都会在手机上看看天气如何,根据天气的变化来决定衣物的穿着和出行的安排。[1]如今手机能提供的信息已经十分精确,已经到了每个小时都有预测的温度和天气状况,还可以看到湿度,能见度,气压等实时信息。然而手机和各个天气网站提供的信息大多都是按星期和月,更长期的预测却是没有的。针对重庆地方地区进行长期预测,重庆位于长江中游的沿岸地区,地势起伏,存在着明显的山地气候变化差异,是很适合进行长期预测的地区,其气候变化对于城市规划、农业、生态保护和人类生活等方面都具有重要影响。因此,研究地方性气温变化趋势具有明显的实践意义[2]。

时间序列模型是一种常用于分析时序数据的方法。它可以根据观测数据中呈现的线性或非线性变化趋势、周期性变化等模式,对未来的某一时刻的变量值进行预测。[3]对重庆历史天气数据进行分析,对部分地区的天气状况,最低气温,最高气温,平均气温和风力风向的数据等方面进行分析,揭示重庆部分地区2021-2022年的平均气温变化趋势通过分析年、季、月或更细粒度的平均气温数据,探索气温的长期变化趋势,如逐年变化、季节性变化等再逐个进行对比分析。[4]研究可能对重庆地区气温变化的驱动因素进行分析,对过去的气温数据进行分析,从而找出气温变化的长期趋势。有助于了解局部气候变化和季节性气候等变化等现象。可以捕捉气温变化的周期性和季节性规律。进而对未来气温变化进行预测,对于短期和长期的气象预报,农业生产,能源需求预测具有重要意义[5]

在中国,目前主要的天气预测技术大致分为静态模型和动态模型静态模型通过历史数据得到的统计学预报方法,比如常规的回归分析,聚类分析,人工神经网络等,这种方法计算简单,速度较快,缺点是无法反映天气形势比纳湖和动态性,范围有限。动态模型主要是通过数值预报的方法,利用率大量的观测资料,理论模型和计算机程序来预测未来天气的形况[6]。用来反映天气形式的动态变化。但同时也存在计算复杂,数据量大和模型有偏差等缺点。

综上,将时间序列模型应用于重庆市部分地区的气温预测,根据大量的历史数据,不仅能提高气温预测的针对性和精度,而且可以更直观的看出不同因素对结果的影响。对于重庆各个方面也具有一定的参考价值。

1.2 研究现状分析

时间序列分析在气象领域中得到了广泛应用,以预测和分析气候变化为目标。特别是针对气温变化趋势的研究,已经有许多国内外学者进行了深入探索。

ARIMA模型是一种常见的时间序列分析方法,被广泛应用于气温预测研究中。高亮[7]等人在研究中使用ARIMA模型对气温数据进行建模和预测,得出了准确的预测结果。研究表明,LSTM模型在捕捉时间序列数据中的长期依赖关系方面具有优势,能够提高气温预测的准确性。

随着深度学习技术的发展,LSTM模型也被广泛应用于气温预测研究中。许红蕾[8]等人针对重庆地区气温的研究表明,LSTM模型相比传统的ARIMA模型,在气温预测的准确性和稳定性方面取得了更好的效果。此外,黄晓芬等人[9]的研究探索了ARIMA和LSTM模型的结合应用,以进一步提高气温预测的精度。

除了模型选择,可视化也是时间序列分析中不可或缺的一部分。Matplotlib是一种常用的Python库,被广泛用于数据可视化[10]。通过绘制折线图、趋势图等形式,可以直观地展示气温变化趋势,以及模型预测结果与实际观测值之间的对比[11]。

根据研究表明,ARIMA和LSTM模型在气温变化趋势分析和预测方面具有良好的性能。随着深度学习技术的发展和数据处理工具(如Pandas)的应用,时间序列分析在气象领域中的应用将更加广泛。同时,结合Matplotlib等可视化工具,可以直观地展示气候变化趋势,为气象决策提供有力支持[12]。

1.3 主要研究方法

1. 数据收集与整理:收集重庆地区2021-2022年的气温数据,包括最高气温、最低气温和平均气温等。对收集的数据进行整理和清洗,确保数据有效、准确和完整,便于进行后续分析[13]。

2. 描述性统计分析:对重庆地区2021-2022年的气温数据进行描述性统计分析,包括计算均值、中位数、标准差等统计指标,以直观地了解气温数据的基本分布情况。

3. 时间序列模型建立:根据气温数据的特征,选择合适的时间序列模型(如AR、MA、ARMA或ARIMA等)进行建模。通过模型识别、参数估计和模型检验等步骤,得到一个较为满意的模型[14]。

4. 模型预测与验证:利用建立的时间序列模型对重庆地区未来一段时间内的气温进行预测,并与实际情况进行对比,评估模型的预测准确性和可靠性[15]。

4 时间序列模型分析

4.1 ARIMA模型预测实现

4.1.1ARIMA模型原理

ARIMA(Autoregressive Integrated Moving Average)模型是一种常用的时间序列预测模型,它结合了自回归(AR)模型、差分(I)和移动平均(MA)模型的特点。ARIMA模型适用于具有一定趋势和季节性的时间序列数据。

ARIMA模型的原理可以概括为以下几个步骤:

差分(Differencing):如果时间序列数据存在明显的趋势或季节性,首先需要对其进行差分,以消除这些特征。通过计算当前值与前一个值之间的差异来实现差分。如果仍然存在趋势,则可能需要多次差分。

自回归(Autoregression):AR部分是基于过去的观测值来预测当前值。AR模型的阶数p表示使用的过去观测值的数量。每个观测值与前p个观测值的线性组合有关。

移动平均(Moving Average):MA部分是基于残差(观测值与通过AR模型预测的值之间的差异)来预测当前值。MA模型的阶数q表示使用的残差的数量。

整合(Integration):I部分是对差分后的数据进行反向操作,将预测值转换为原始数据的尺度。整合的阶数d表示进行差分的次数。

ARIMA模型的公式可以表示为:

ARIMA(p, d, q):Y(t) = c + φ(1)*Y(t-1) + φ(2)*Y(t-2) + ... + φ(p)*Y(t-p) + θ(1)*ε(t-1) + θ(2)*ε(t-2) + ... + θ(q)*ε(t-q) + ε(t)

其中,Y(t) 是时间序列在时刻t的观测值,c 是常数项,φ(i) 是自回归系数,i=1,2,...,p,Y(t-i) 是时间序列在时刻t-i的观测值,θ(j) 是移动平均系数,j=1,2,...,q,ε(t-j) 是残差,在时刻t-j的残差,ε(t) 是白噪声误差,在时刻t的误差。

4.1.2ARIMA模型实现步骤思路

ARIMA模型被成功应用于重庆的温度预测,通过数据预处理、平稳性检验、自相关和偏自相关分析、参数选择和模型拟合,得到了具有最小AIC和BIC值的最佳ARIMA模型,并使用该模型对未来5天的最高温度和最低温度进行了预测。这样的温度预测结果有助于理解重庆的气温趋势和变化,并为决策和规划提供参考。

4.1.3数据预处理

通过将日期字段的时间部分去除,并按日期对数据进行排序和索引设置,确保日期被正确解析和排序。然后,对最高温度和最低温度字段进行数据清洗和转换,将温度值中的度符号"°"去除并将字符串类型转换为数值类型。

随后,通过调用matplotlib库的plot方法,创建了一个14x7英寸大小的图形,并在图表中绘制了最高温度和最低温度的曲线。图表的横轴表示日期,纵轴表示温度,其中最高温度用实线表示,最低温度用虚线表示。此图表展示了重庆的温度趋势。如图4.1.3所示:

4.1.3  重庆的温度趋势图

4.1.4平稳性检验

使用statsmodels库的adfuller函数,对最高温度和最低温度数据进行ADF检验,以评估它们的平稳性。ADF检验的结果包括ADF统计量、p-value和关键值。通过这些结果,可以判断温度数据是否平稳。如表5.1.4所示:

4.1.4 ADF检验结果

检验

最高温数据

最低温数据

ADF Statistic for Temperature

-4.513908

-2.620858

p-value

    0.000186

0.088763

Critical Values

1%: -3.431

5%: -2.862

10%: -2.567

1%: -3.431

5%: -2.862

10%: -2.567

4.1.5自相关和偏自相关分析

对最低温度数据进行一阶差分,并再次使用ADF检验对差分后的数据进行平稳性检验。通过打印ADF统计量、p-value和关键值,可以评估差分后的最低温度数据是否平稳。如表4.1.5所示:

4.1.5 ADF一阶差分检验结果

检验

最低温数据

ADF Statistic for Temperature

 -44.659409

p-value

0.000000

Critical Values

1%: -3.431

5%: -2.862

10%: -2.567

接下来,使用statsmodels库的plot_acf和plot_pacf函数,绘制了最高温度和差分后的最低温度的自相关图(ACF)和偏自相关图(PACF)。这些图表有助于确定ARIMA模型中的参数。如图4.1.5所示:

4.1.5  自相关图(ACF)和偏自相关图(PACF)图

4.1.6参数选择和模型拟合

在完成数据预处理和分析后,使用一个名为best_arima_model的函数来计算最佳的ARIMA模型。该函数遍历指定的p和q范围,尝试不同的参数组合,选择具有最小AIC和BIC值的模型作为最佳模型。

使用最佳ARIMA模型对最高温度数据进行拟合,并通过调用get_forecast方法对未来5天的最高温度进行预测,获取预测结果的平均值。同时,对差分后的最低温度数据也使用最佳ARIMA模型进行拟合,并根据差分后的数据得到预测结果。为了将差分后的最低温度还原到原始尺度,累积预测结果并加上最后一个实际观测值。

最后,使用pd.date_range函数创建了未来5天的时间序列索引,并使用matplotlib库绘制了温度预测的结果图表。在图表中,实线表示实际的最高温度和最低温度,虚线表示预测的最高温度和最低温度。通过这个图表,可以直观地比较实际温度和预测温度,从而评估模型的准确性。如图4.1.6所示:

4.1.6  温度预测的结果图

4.1.7结论

根据给出的ADF检验结果和最佳ARIMA模型的AIC和BIC值,可以得出以下结论:

对于最高温度数据,ADF统计量的值为-4.513908,p-value为0.000186。与临界值进行比较,可以发现ADF统计量小于1%的临界值,因此可以拒绝原假设,即最高温度数据是非平稳的。这表明最高温度数据具有趋势或季节性变化。

对于最低温度数据,ADF统计量的值为-2.620858,p-value为0.088763。与临界值进行比较,可以发现ADF统计量大于1%的临界值,因此无法拒绝原假设,即最低温度数据可能是非平稳的。这意味着最低温度数据存在一定的随机性。

对于差分后的最低温度数据,ADF统计量的值为-44.659409,p-value为0.000000。与临界值进行比较,可以发现ADF统计量远小于1%的临界值,因此可以拒绝原假设,即差分后的最低温度数据是平稳的。这说明通过一阶差分,成功地消除了最低温度数据中的趋势和季节性。

根据AIC和BIC的值,最佳ARIMA模型为ARIMA(3, 0, 1)对于最高温度数据,AIC值为134424.798,BIC值为134474.638。对于差分后的最低温度数据,最佳ARIMA模型为ARIMA(1, 0, 1),AIC值为122014.725,BIC值为122047.951。

综上所述,根据ADF检验结果和最佳ARIMA模型的AIC和BIC值,可以得出以下结论:最高温度数据是非平稳的,具有趋势或季节性变化;最低温度数据是非平稳的,存在一定的随机性;经过一阶差分处理后,最低温度数据变得平稳;对于最高温度数据,最佳ARIMA模型为ARIMA(3, 0, 1);对于差分后的最低温度数据,最佳ARIMA模型为ARIMA(1, 0, 1)。

4.2 LSTM模型预测实现

4.2.1 LSTM模型原理

LSTM(Long Short-Term Memory)模型是一种常用的循环神经网络(RNN)变体,用于处理和预测时间序列数据。相比传统的RNN模型,LSTM模型能够更好地解决长期依赖问题,并且能够捕捉到更长时间范围内的上下文信息。

LSTM模型的原理可以概括为以下几个关键组件:

细胞状态(Cell State):LSTM中引入了一个细胞状态,用于存储和传递长期的记忆。细胞状态在整个时间序列中保持不变,可以通过门控机制来决定是否更新和重置。

输入门(Input Gate):输入门控制着将什么信息加入到细胞状态中。它使用sigmoid函数来决定输入门的打开程度,以及tanh函数来产生一个新的候选值。

遗忘门(Forget Gate):遗忘门决定了从细胞状态中删除哪些信息。它使用sigmoid函数来决定遗忘门的打开程度,控制着细胞状态中的旧信息被保留还是被遗忘。

输出门(Output Gate):输出门决定从细胞状态中提取出哪些信息。它使用sigmoid函数来决定输出门的打开程度,并使用tanh函数将细胞状态的值进行缩放。最后,通过输出门来生成LSTM单元的输出。

LSTM模型的公式可以表示为:

输入门:i(t) = sigmoid(W(i) * [h(t-1), x(t)] + b(i))

遗忘门:f(t) = sigmoid(W(f) * [h(t-1), x(t)] + b(f))

更新细胞状态:C(t) = f(t) * C(t-1) + i(t) * tanh(W(c) * [h(t-1), x(t)] + b(c))

输出门:o(t) = sigmoid(W(o) * [h(t-1), x(t)] + b(o))

输出隐藏状态:h(t) = o(t) * tanh(C(t))

其中,i(t) 是输入门的输出,f(t) 是遗忘门的输出,o(t) 是输出门的输出,C(t) 是细胞状态的值,h(t) 是隐藏状态(LSTM单元的输出)的值,W(i),W(f),W(c),W(o) 是权重矩阵,b(i),b(f),b(c),b(o) 是偏置项向量,x(t) 是当前时间步的输入数据,h(t-1) 是上一时间步的隐藏状态。

4.2.2 LSTM模型实现步骤思路

LSTM模型被应用于温度预测。通过数据预处理、序列创建、模型定义、训练、评估和预测等步骤,可以得到准确的温度预测结果,并通过评估指标来评估模型的性能。这样的温度预测结果对于气象预测和决策制定具有重要意义。

4.2.3 数据预处理

通过将日期字段的时间部分去除,并按日期对数据进行排序和索引设置,确保日期被正确解析和排序。然后,使用StandardScaler对最高温度数据进行标准化。

4.2.4 序列创建

定义了一个create_sequences函数,用于创建序列数据。该函数根据给定的序列长度,将输入数据切割成输入序列和目标序列,并返回这些序列的数组形式。使用create_sequences函数将训练集和测试集数据划分成输入序列和目标序列,并将其转换为张量类型。

4.2.5 模型定义训练

Attention类和DeepBiLSTMWithAttention类。Attention类用于计算注意力权重和上下文向量,DeepBiLSTMWithAttention类是深度双向LSTM模型,带有注意力机制。创建了最佳参数best_params,并使用这些参数创建了最佳模型best_model。同时,定义了优化器和损失函数。开始训练模型,在每个epoch中,遍历训练数据集,将输入数据传入模型进行前向传播和反向传播,并更新模型的参数。在每个epoch结束后,计算并打印训练损失。

4.2.6 模型评估和预测

使用测试数据集对训练好的模型进行评估。使用MSE损失函数计算测试损失,并打印出平均测试损失。使用best_model对测试数据集进行预测,并将预测结果和真实值反缩放回原始尺度。绘制了真实值和预测值之间的折线图,用于可视化模型的性能。

在此基础上,使用sklearn库的mean_squared_error、mean_absolute_error和r2_score函数计算了不同的评估指标,包括均方误差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE)和决定系数(R2)。如图4.2.7.1所示:

4.2.7.1评估指标结果图

最后,使用best_model对未来时间的温度进行预测,并将预测结果绘制成折线图。这些预测结果展示了从2021年1月到2023年10月的温度趋势。同理,最低温度预测也是如此。如图5.2.7.2所示:

4.2.7.2 2021年1月到2023年12月的温度预测的结果图

5 总结与展望

5.1 总结

基于时间序列模型分析重庆2021-2022年气温变化趋势的研究为提供了对该地区气温变化的深入理解。通过使用ARIMA和LSTM这两种常用的时间序列模型,可以得出以下结论:

首先,通过ARIMA模型分析,发现最高温度数据在2021年到2022年期间呈现出明显的季节性和趋势性变化。根据ADF检验结果,可以确认最高温度数据是非平稳的,并且需要进行差分处理才能达到平稳性。经过一阶差分后,最高温度数据变得平稳,然后选择最佳ARIMA模型为(3, 0, 1),对未来5天的最高温度进行了预测。预测结果显示了温度的整体趋势和变化。

其次,通过LSTM模型分析,可以捕捉到更复杂的时间序列特征。使用LSTM模型对最高温度数据进行训练和预测,得到了与ARIMA模型相似的结果。LSTM模型具有记忆单元和隐藏状态的结构,能够更好地捕捉时间序列中的长期依赖关系。通过引入注意力机制,LSTM模型还能够聚焦于关键的时间步,进一步提高了预测性能。

这两种模型的特色在于它们都可以根据历史数据进行预测,并且能够灵活地处理不同的时间序列特征。ARIMA模型适用于具有明显季节性和趋势性变化的数据,而LSTM模型能够更好地捕捉复杂的时间序列模式。此外,还对预测结果进行了评估,计算了常见的评估指标,如均方误差(MSE)、均方根误差(RMSE)和平均绝对误差(MAE),以评估模型的准确性。

5.2 展望

然而,这些模型也存在一些不足之处。首先,ARIMA模型对数据的平稳性要求较高,如果数据不满足平稳性条件,则需要进行差分或其他转换方法来处理。其次,LSTM模型对于参数的选择和调优比较困难,需要通过实验和经验来确定最佳的模型结构和超参数设置。此外,时间序列数据可能受到多种因素的影响,如季节性、趋势性、周期性和异常值等,模型在处理这些复杂情况时可能会出现挑战。

基于时间序列模型分析重庆2021-2022年气温变化趋势的研究实现了对气温数据的预测和分析。其特色在于能够根据历史数据捕捉时间序列的特征,并提供了关于未来气温变化的预测结果。然而,这些模型在处理非平稳数据和复杂时间序列模式时仍然存在一定的局限性,需要进一步的改进和调优。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1951903.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++基础知识:函数重载相关注意事项:1.引用作为重载条件,2.2.函数重载遇见函数默认参数。

1.引用作为重载条件 #include<iostream>using namespace std;//1.引用作为重载的条件 //int 和 const int 类型不同&#xff0c;所以可以作用重载条件 void fn(int &a) //int &a10;不合法 //10放在了常量区&#xff0c;而引用要么在栈区&#xff0c;要么在堆区{…

mysql的MHA以及故障模拟

目录 MHA概念 MHA的组件 MHA的特点 实验&#xff1a;搭建完成MHA的架构 实验&#xff1a;主备切换 实验结果 实验&#xff1a;故障切换 实验&#xff1a;故障恢复 MHA概念 MHA&#xff1a;高可用模式下的故障切换&#xff0c;基于主从复制。它解决的是单点故障和主从复…

Ruby、Python、Java 开发者必备:Codigger之软件项目体检

在编程的广阔天地里&#xff0c;Ruby、Python 和 Java 开发者们各自凭借着独特的语言特性&#xff0c;构建着精彩纷呈的应用世界。然而&#xff0c;无论使用哪种语言&#xff0c;确保项目的高质量始终是至关重要的目标。而 Codigger 项目体检则成为了实现这一目标的得力助手&am…

【JS】事件循环

事件循环&#xff08;Event Loop&#xff09; 什么是事件循环 事件循环就是一个执行任务队列的机制 为什么会出现事件循环 为了避免单线程出现阻塞,采用了异步的形式执行任务。为了解决异步任务的问题,采用了事件循环机制。 事件循环的流程 JavaScript是一门单线程的语言…

Chapter 17 Python文件操作(下)

欢迎大家订阅【Python从入门到精通】专栏&#xff0c;一起探索Python的无限可能&#xff01; 文章目录 前言一、文件的写入二、文件的追加 前言 Python作为一种高效且易于学习的编程语言&#xff0c;提供了一系列强大的文件操作功能&#xff0c;使得用户能够轻松地实现文件的读…

深度解析Linux-C——函数和内存管理

目录 函数指针&#xff1a; 指针函数&#xff1a; 参数为指针的函数&#xff1a; 参数为数组的函数&#xff1a; C语言内存管理 stdlib.h头文件常用函数介绍 1、局部变量 2、全局变量 3、 堆空间变量 4、静态变量 5、常量 函数指针&#xff1a; 指向函数的指针&#…

针对datax-web 中Swagger UI接口未授权访问

application.yml 添加以下配置 实现访问doc.html 以及/v2/api-docs 接口时需要进行简单的校验 swagger:basic:enable: trueusername: adminpassword: 12345 配置重启后再进行相关访问则需要输入用户名和密码

Radon(拉当) 变换:超详细讲解(附MATLAB,Python 代码)

Radon 变换 Radon 变换是数学上用于函数或图像的一种积分变换&#xff0c;广泛应用于图像处理领域&#xff0c;尤其是在计算机断层成像 (CT) 中。本文档将详细介绍 Radon 变换的数学含义及其在图像处理中的应用。 数学定义 Radon 变换的数学定义是将二维函数 f ( x , y ) f…

Spark实时(二):StructuredStreaming编程模型

文章目录 StructuredStreaming编程模型 一、基础语义 二、事件时间和延迟数据 三、​​​​​​​容错语义 StructuredStreaming编程模型 一、基础语义 Structured Streaming处理实时数据思想是将实时数据看成一张没有边界的表,数据源源不断的追加到这张表中,这可以让我…

零基础STM32单片机编程入门(二十二) ESP8266 WIFI模块实战含源码

文章目录 一.概要二.ESP8266 WIFI模块主要性能参数三.ESP8266 WIFI模块芯片内部框图四.ESP8266 WIFI模块原理图五.ESP8266 WIFI模块与单片机通讯方法1.硬件连接2.ESP8266模块AT指令介绍 六.STM32单片机与ESP8266WIFI模块通讯实验1.硬件准备2.软件工程3.软件主要代码4.实验效果 …

Super 4PCS配准算法

Nicolas Mellado&#xff0c;CNRS&#xff08;Centre national de la recherche scientifique&#xff0c;法国国家科学研究中心&#xff09;的研究员&#xff0c;在IRIT&#xff08;Institut de Recherche en Informatique de Toulouse&#xff0c;图卢兹计算机科学研究所&…

LeetCode Hot100 搜索二维矩阵

给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。…

自动化测试 pytest 中 scope 限制 fixture使用范围!

导读 fixture 是 pytest 中一个非常重要的模块&#xff0c;可以让代码更加简洁。 fixture 的 autouse 为 True 可以自动化加载 fixture。 如果不想每条用例执行前都运行初始化方法(可能多个fixture)怎么办&#xff1f;可不可以只运行一次初始化方法&#xff1f; 答&#xf…

学习笔记:《用Python进行数据分析》之通用函数

通用函数&#xff08;即ufunc&#xff09;是一种对ndarray中的数据执行元素级运算的函数。你可以将其看做简单函数&#xff08;接受一个或多个标量值&#xff0c;并产生一个或多个标量值&#xff09;的矢量化包装器。 许多ufunc都是简单的元素级变体&#xff0c;如sqrt和exp&a…

HTML前端面试题之<iframe>标签

面试题&#xff1a;iframe 标签的作用是什么?有哪些优缺点 ? 讲真&#xff0c;刷这道面试题之前我根本没有接触过iframe&#xff0c;网课没讲过&#xff0c;项目实战没用过&#xff0c;但却在面试题里出现了&#xff01;好吧&#xff0c;我只能说&#xff1a;前端路漫漫&…

通过 C# 写入数据到Excel表格

Excel 是一款广泛应用于数据处理、分析和报告制作的电子表格软件。在商业、学术和日常生活中&#xff0c;Excel 的使用极为普遍。本文将详细介绍如何使用免费.NET库将数据写入到 Excel 中&#xff0c;包括文本、数值、数组、和DataTable数据的输入。 文章目录 C# 在Excel单元格…

uniapp map组件自定义markers标记点

需求是根据后端返回数据在地图上显示标记点&#xff0c;并且根据数据状态控制标记点颜色&#xff0c;标记点背景通过两张图片实现控制 <mapstyle"width: 100vw; height: 100vh;":markers"markers":longitude"locaInfo.longitude":latitude&…

Python 实现股票指标计算——DMA

DMA (Deviation Moving Average) - 平均差 1 公式 DMA 收盘价N1日简单平均 - 收盘价N2日简单平均 AMA M日DMA简单平均 2 数据准备 我们以科创50指数 000688 为例&#xff0c;指数开始日期为2019-12-31&#xff0c;数据格式如下&#xff1a; 3 计算过程 def calculate_d…

构造+有序集合,CF 1023D - Array Restoration

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1023D - Array Restoration 二、解题报告 1、思路分析 先考虑合法性检查&#xff1a; 对于数字x&#xff0c;其最左位置和最右位置 之间如果存在数字比x小&#xff0c;则非法 由于q次操作&#xff0c;第q…

Dav_笔记11:SQL Tuning Overview-sql调优 之 5

构建SQL测试用例 对于许多与SQL相关的问题&#xff0c;获得可重现的测试用例可以更轻松地解决问题。从11g第2版&#xff08;11.2&#xff09;开始&#xff0c;Oracle数据库包含SQL测试用例构建器&#xff0c;它可以自动完成收集和复制尽可能多的有关问题及其发生环境的信息的难…