Python学习-序列

Python机器学习实战:使用机器学习进行时间序列分析 Python机器学习实战:使用机器学习进行时间序列分析 1.背景介绍 1.1 时间序列分析概述 时间序列分析是一种研究随时间变化的数据的统计技术。它广泛应用于金融、经济、气象、工业生产等诸多领域,旨在从历史数据中发现模 阅读详情

十六、序列

一、序列的共同点(列表、元素、字符串)

1、都可以通过索引获取每一个元素
2、第一个元素的索引值都是0
3、都可以通过切片的方法获取一个范围内的元素的集合
4、都有很多共同的运算符
5、可变序列:列表
不可变序列:元祖、字符串

二、序列运算符

1、+:拼接;*:拷贝

>>> [1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]
>>> (1,2,3)+(4,5,6)
(1, 2, 3, 4, 5, 6)
>>> "123"+"456"
'123456'
 
>>> [1,2,3]*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> (1,2,3)*3
(1, 2, 3, 1, 2, 3, 1, 2, 3)
>>> "123"*3
'123123123'

#Python中每个对象都有三个基本属性,分别是唯一标识,类型和值,其中唯一标识是随着对象创建的时候就有的,是不可以被修改的,也不会有重复的值,函数id即返回一个代表指定对象的唯一标识的整数值。
#可变序列―列表(id在运算后不会改变)

>>> s=[1,2,3]
>>> id(s)
2064604609536
>>> s *= 2
>>> s
[1, 2, 3, 1, 2, 3]
>>> id(s)
2064604609536

#不可变序列―元祖(id在运算后会改变)

>>> t = (1,2,3)
>>> id(t)
2064647311232
>>> t *=2
>>> t
(1, 2, 3, 1, 2, 3)
>>> id(t)
2064647127392

2、同一性运算符is和is not:用于检测对象的id值是否相等,从而判断是否是同一个对象。

>>> x="Love"
>>> y="Love"
>>> x is y
True
>>> x=[1,2,3]
>>> y=[1,2,3]
>>> x is y
False

3、包含运算符in和not in:判断某元素是否包含在序列中。

>>> "鱼" in "鱼C"
True
>>> "C" not in "FishC"
False

4、del函数:用于删除一个或多个指定的对象,或删除可变序列中的指定元素

>>> x = "FishC"
>>> y = [1,2,3]
>>> del x,y
>>> x
Traceback (most recent call last):
  File "<pyshell#30>", line 1, in <module>
    x
NameError: name 'x' is not defined
>>> y
Traceback (most recent call last):
  File "<pyshell#31>", line 1, in <module>
    y
NameError: name 'y' is not defined
 
>>> x = [1,2,3,4,5]
>>> del x[1:4]
>>> x
[1, 5]
>>> x = [1,2,3,4,5]
>>> del x[::2]
>>> x
[2, 4]
 
>>> y = [1,2,3,4,5]
>>> y[1:4]=[]
>>> y
[1, 5]

#清空列表

>>> x = [1,2,3,4,5]
>>> x.clear()
>>> x
[]
>>> y = [1,2,3,4,5]
>>> del y[:]
>>> y
[]

三、序列内置函数

1、list()、tuple()、str():列表、元祖和字符串相互转换

>>> list("FishC")
['F', 'i', 's', 'h', 'C']
>>> list((1,2,3,4,5))
[1, 2, 3, 4, 5]
>>> tuple("FishC")
('F', 'i', 's', 'h', 'C')
>>> tuple([1,2,3,4,5])
(1, 2, 3, 4, 5)
>>> str([1,2,3,4,5])
'[1, 2, 3, 4, 5]'
>>> str((1,2,3,4,5))
'(1, 2, 3, 4, 5)'

2、min()和max()函数:对比传入的参数,并且返回最小值和最大值。
语法:

min(iterable,*[,key,default])
min(arg1,arg2,*args[,key])
max(iterable,*[,key, default])
max(arg1,arg2,*args[,key])

举例:

>>> s = [1,1,2,3,5]
>>> min(s)
1
>>> t ="FishC"
>>> max(t)
's'
>>> s=[]
>>> min(s)
Traceback (most recent call last):
  File "<pyshell#59>", line 1, in <module>
    min(s)
ValueError: min() arg is an empty sequence
>>> min(s,default="空值表")
'空值表'
#直接传入参数
>>> min(1,2,3,0,6)
0
>>> max(1,2,3,0,6)
6

3、len()函数:求字符的长度
len()函数参数的最大值,32位平台是2的31次方减1,64位平台是2的63次方减1

4、sum()函数:求和公式

>>> s=[1,0,0,8,6]
>>> sum(s)
15
>>> sum(s,start=100)
115

5、sorted()、reversed():对元素进行排序

>>> sorted(s)
[0, 1, 2, 3, 6]
#reversed表示翻转
>>> sorted(s,reverse=True)
[6, 3, 2, 1, 0]
>>> t = ["FishC","Apple","Book","Banana","Pen"]
>>> sorted(t)
['Apple', 'Banana', 'Book', 'FishC', 'Pen']
#key可以传入函数,比如比较字符的长度然后排序
>>> sorted(t,key=len)
['Pen', 'Book', 'FishC', 'Apple', 'Banana']

注意:sort是列表的函数,只能处理列表,但sorted可以处理字符串、元祖和列表,可接受任何形式的可迭代对象作为参数

>>> sorted("FishC")
['C', 'F', 'h', 'i', 's']
>>> sorted((1,0,0,8,6))
[0, 0, 1, 6, 8]

6、reversed()函数:调转元素,并返回的是一个参数的反向迭代器。迭代器:可迭代对象。reversed()函数要看到结果的话,需要变成列表或元祖或字符串。

>>> reversed(s)
<list_reverseiterator object at 0x000001E0B6912700>
>>> list(reversed(s))
[0, 8, 5, 2, 1]
>>> s.reverse()
>>> s
[0, 8, 5, 2, 1]
>>> list(reversed("FishC"))
['C', 'h', 's', 'i', 'F']
>>> list(reversed(range(0,10)))
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

7、all()和any()函数
all()函数:判断可迭代对象中是否所有元素的值都为真
any()函数:判断可迭代对象中是否存在某个元素的值为真

>>> x = [1,1,0]
>>> y = [1,1,9]
>>> all(x)
False
>>> all(y)
True
>>> any(x)
True
>>> any(y)
True

8、enumerate()函数
enumerate()函数用于返回一个枚举对象,它的功能就是将可迭代对象中的每个元素及从0开始的序号共同构成一个二元组的列表。

>>> seasons = ["Spring","Summer","Fall","Winter"]
>>> enumerate(seasons)
<enumerate object at 0x000001E0B69113C0>
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]

#start参数可以用来自定义这个序号开始的值

>>> list(enumerate(seasons,10))
[(10, 'Spring'), (11, 'Summer'), (12, 'Fall'), (13, 'Winter')]

9、zip()函数
zip()函数用于创建一个聚合多个可迭代对象的迭代器。
它会将作为参数传入的每个可迭代
对象的每个元素依次组合成元祖,即第i个元组包含来自每个参数的第i个元素。

>>> x = [1,2,3]
>>> y = [4,5,6]
>>> ziped =zip(s,y)
>>> ziped =zip(x,y)
>>> list(ziped)
[(1, 4), (2, 5), (3, 6)]
>>> z = [7, 8,9]
>>> ziped =zip(x,y,z)
>>> list(ziped)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

#传入的可迭代对象长度不一致时

>>> z = "FishC"
>>> ziped =zip(x,y,z)
>>> list(ziped)
[(1, 4, 'F'), (2, 5, 'i'), (3, 6, 's')]

#itertools模块中有zip_longest()函数,补充长度不一致的元素

>>> import itertools
>>> zipped=itertools.zip_longest(x,y,z)
>>> list(zipped)
[(1, 4, 'F'), (2, 5, 'i'), (3, 6, 's'), (None, None, 'h'), (None, None, 'C')]

10、map()函数
map()函数会根据提供的函数对指定的可迭代对象的每个元素进行运算,并将返回运算结果的迭代器。
#ord求字符对应的Unicode编码

>>> mapped=map(ord,"FishC")
>>> list(mapped)
[70, 105, 115, 104, 67]

#pow计算次方

>>> mapped=map(pow,[2,3,10],[5,2,3])
>>> list(mapped)
[32, 9, 1000]
>>> [pow(2,5),pow(3,2),pow(10,3)]
[32, 9, 1000]

#长度不一致也是取最短

>>> list(map(max,[1,3,5],[2,2,2],[0,3,9,8]))
[2, 3, 9]

11、filter()函数
filter()函数会根据提供的函数对指定的可迭代对象的每个元素进行运算,并将运算结果为真的元素,以迭代器的形式返回。

>>> list(filter(str.islower,"FishC"))
['i', 's', 'h']

三、迭代器vs可迭代对象

一个迭代器肯定是一个可迭代对象,可迭代对象可以重复使用,而迭代器则是一次性的。
#举例一次性的迭代器

>>> mapped=map(ord,"FishC")
>>> for each in mapped:
print(each)
 
 
70
105
115
104
67
>>> list(mapped)
[]

#iter()函数:将可迭代对象变成一次性的迭代器

>>> x = [1,2,3,4,5]
>>> y = iter(x)
>>> type(x)
<class 'list'>
>>> type(y)
<class 'list_iterator'>

#next()函数针对迭代器,作用是逐个将迭代器中的元素给提取出来

>>> next(y)
1
>>> next(y)
2
>>> next(y)
3
>>> next(y)
4
>>> next(y)
5
>>> next(y)
Traceback (most recent call last):
  File "<pyshell#131>", line 1, in <module>
    next(y)
StopIteration

#不抛出异常

>>> z = iter(x)
>>> next(z,"没有值了")
1
>>> next(z,"没有值了")
2
>>> next(z,"没有值了")
3
>>> next(z,"没有值了")
4
>>> next(z,"没有值了")
5
>>> next(z,"没有值了")
'没有值了'
Python机器学习实践指南:序列模型(上) 作者:禅与计算机程序设计艺术 1.简介 什么是序列数据?在实际业务中,序列数据常用于各种数据分析任务,例如在金融、气象、气候变化等领域,都有很多应用。而序列模型就是针对这种连续型数据的预测分析方法。本系列文章将从以下三个方面对序列模型进行讲解: 一维序列模型(univariat 阅读详情

相关推荐

时间序列分析 | Python机器学习时间序列任务概况

时间序列分析 | Python机器学习时间序列任务 目录时间序列分析 | Python机器学习时间序列任务基本介绍任务描述时间序列查询时间序列聚类时间序列分类时间序列预测时序异常检测时序主题发现时间序列分割时序信息复原参考资料 基本介绍 时间序列是随着时间的推移采集得到的有序数据点。例如,在物联网的背景下,来自传感器的测量结果通常包括时间序列(例如,压力、温度、电压等物理值。 索引(也称为按内容查询)是在数据库中查找相似时间序列(或给定模式或时间序列子序列)的任务。 聚类是将相似的时间序列聚合一起。

前程算法屋的博客 1140

Python 时间序列的机器学习(一)

这本书讲的是关于 Python 的时间序列机器学习,你可以将本章看作是时间序列的入门课程。在本章中,我们将介绍时间序列、时间序列研究的历史,以及如何使用 Python 进行时间序列分析。我们将从时间序列的定义及其主要特性开始。接着,我们将探讨不同科学领域中时间序列研究的历史,这些领域为该学科奠定了基础,例如人口学、天文学、医学和经济学。然后,我们将探讨 Python 在时间序列方面的能力,以及为什么 Python 是做时间序列机器学习的首选语言。

龙哥盟 1804

1、利用Python进行时间序列机器学习入门

本文介绍了时间序列的基本概念及其在不同学科中的研究历史,重点讲解了Python在时间序列分析和机器学习中的应用。内容包括时间序列的定义、关键分析步骤、预处理方法、常用机器学习模型以及预测方法。文章还提供了相关的Python代码示例和工具安装方法,帮助读者快速入门时间序列建模与预测。

echo99的专栏 66

【Python机器学习】详解Python机器学习进行时间序列预测

时间序列预测是一种基于时间序列数据的预测方法,通常用于预测未来某个时间点的数值。在Python中,可以使用多种库和工具进行时间序列预测,例如ARIMA、Prophet等。

左手の明天的博客 4173

Android ------ 开源的Modnet算法实现抠图和更换背景

Portrait Matting (sight-x.cn) 飞桨PaddlePaddle-源于产业实践的开源深度学习平台 GitHub - PaddlePaddle/PaddleSeg at develop

切切歆语的博客 1万+

史上最小白之RNN详解

1.前言 网上目前已经有诸多优秀的RNN相关博客,但是我写博客的出发点主要是为了加深和巩固自己的理解,所以还是决定自己再进行一下总结和描述,如有不正确的地方欢迎指正~ 2.区分RNN 循环神经网络(Recurrent Neural Network),递归神经网络(Recursive Neural Network),你有没有发现他们的缩写都是RNN,那他们两个是同一回事儿吗?网上有一些博客把这两就当...

Tink1995的博客 4万+

Python基础学习day5——元组、序列

元组和列表的区别在于元组的内容不可修改,用圆括号包括(),逗号间隔注意:括号可以省略,但是逗号一定要有,即使只有一个元素,也应加上逗号。例如 tuple1 = 1, 和tuple =(1,)如果含有多个元素,则不需要额外加逗号,tuple2 = 1,2,3,4。

2501_92708079的博客 846

深入理解HTTPS:从SSLHandshakeException到证书链验证的完整解析

本文深入解析了HTTPS握手过程中常见的SSLHandshakeException异常,特别是由证书链验证失败引发的CertPathValidatorException。文章从TLS握手流程、证书链验证的数学原理出发,详细剖析了Java中TrustManager的工作机制,并提供了针对证书链不完整、自签名证书等典型问题的系统化排查流程与实战解决方案。

weixin_29313423的博客 231

学习Python笔记6——序列

学习序列的索引及切片的相关操作,还有序列的拓展

weixin_74850548的博客 412

Pytorch(一) Pytorch 的安装

安装步骤 1.检查是否有合适的GPU, 若有安装Cuda与CuDNN 2.下载pytorch安装文件,进行pytorch的安装 检查电脑是否有合适的GPU 在桌面上右击如果能找到NVIDA控制面板,则说明该电脑有GPU。控制面板如下,并通过查看系统信息获取支持的Cuda版本 点击 帮助->点击 系统信息 弹出下面的对话框,在驱动程序版本那一栏就能看到该计算机使用的驱动版本。 ...

开开心心 25万+

Vins-Fusion 外参camera-imu 标定

Vins-Fusion是一种基于优化的多传感器状态估计器,一大特色是支持实时camera-imu外参校准(相机和IMU之间的旋转)。Vins-Fusion 外参camera-imu校准是利用两帧间计算相机位姿和imu预积分得到位姿,构建最小二乘问题,并通过SVD求解camera-imu外参旋转矩阵。

u010196944的博客 2490

【Python机器学习】序列到序列建模和注意力机制——组装一个序列到序列的流水线

组装一个序列到序列的流水线

weixin_39407597的博客 971

Scrapy爬虫之热门网站数据爬取--------第2关

第2关:小说网站玄幻分类第一页小说爬取 任务描述 本关任务:爬目标网页的3本小说保存到本地MySQL数据库,目标网页为全书网玄幻分类首页。 注:考虑到单机(非分布式)爬虫的爬取时间和测试平台的压力,我们不爬更多页数的小说了,可以作为课下作业自己完善。 xpath匹配:循环获取相同标签下的内容 通过网页分析,我们在获取小说的章节名时,发现他们都在标签<DIV class="clearfix dirconone">下的li的a中: 这时,我们可以先把其中所有的li标签先获取到: titles = r

weixin_44949187的博客 2835

Python学习引导&PyCharm序列号

http://www.keepsunny.com/2015/03/02/python%E5%AD%A6%E4%B9%A0%E5%BC%95%E5%AF%BC%E5%BA%8F%E5%88%97%E5%8F%B7/ 转载于:https://blog.51cto.com/bhlzlx/1616697

weixin_34268310的博客 232

在 SAP 系统中,成本中心(Cost Center)是成本核算与费用管控的基础组织单元,其设计质量直接决定了后续成本归集、分摊、分析及责任考核的准确性

SAP系统成本中心设计核心要点:1. 设计原则包括责任可控、业务同质、核算颗粒度适配、组织对齐及稳定性平衡;2. 划分维度主要有部门、功能、地域、项目和资产5类,可组合使用;3. 需避免颗粒度过细、跨责任主体归集等常见误区;4. 建议采用"明确目标-梳理业务-设计编码"三步法,建立科学的成本中心体系。合理的成本中心设计能精准归集费用、明确责任主体,为成本分析和管控奠定基础。

金牌架构师 1437

信号处理仿真:自适应信号处理_(8).自适应信道均衡

在无线通信系统中,信道的多径效应和时变特性会导致信号的失真,从而影响通信质量。自适应信道均衡技术通过实时调整均衡器的参数,以补偿信道失真,提高信号的质量和可靠性。本节将详细介绍自适应信道均衡的原理、算法和实现方法,并通过具体的仿真例子来说明其应用。

2401_87715305的博客 1039

Python 时间序列的机器学习(二)

在这一章中,我们讨论了基于移动平均和自回归的时间序列预测。这个主题包含了一大套模型,在不同领域(如计量经济学和统计学)中非常流行。这些模型是时间序列建模的支柱,并提供了最先进的预测方法。我们已经讨论了自回归和移动平均模型,以及结合这两者的其他模型,包括 ARMA、ARIMA、VAR、GARCH 等。在实践环节中,我们已经将一些模型应用于股票价格数据集。在本章中,我们集中讨论了时间序列无监督方法的两个方面:异常检测变化点检测异常检测(也叫:离群点检测)的本质是识别出明显与其他序列不同的部分。

龙哥盟 1877

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Sktime:用于时间序列机器学习的Python库

全文共4701字,预计学习时长12分钟 图源:unsplash 在Python中使用时间序列来解决数据科学问题是非常有挑战性的,现有的工具并不适合时间序列任务,也不容易集成。 Scikiti -learn包中的方法假设数据是表格格式结构,每一列为独立同分布——这些假设不适用于时间序列数据。包含时间序列学习模块的程序包,例如状态模型,不能很好地集成。此外,现有的Python包不支持许多基本的时间序列操作,比如将数据分成不同时间的训练集和测试集。 Sktime就是为了解决这一问...

读芯术的博客 6675

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【流畅的Python】第二章:丰富的序列——《Fluent Python》学习笔记

在仅指定停止位置时,容易判断切片或区间的长度。例如,range(3)和都只产生 3 项。方便在索引x处把一个序列拆分成两部分而不产生重叠,直接使用和即可。

HearMeRoar_的博客 1478

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

时间序列预测Python机器学习应用

时间依赖性:当前值受过去值的影响。趋势性:数据可能呈现长期上升或下降的趋势。季节性:数据在固定周期内重复出现的模式。噪声:随机波动,无明显规律。

木头大左的博客 1740
上一篇: Python学习-字符串
下一篇: Excel图表 - 条形图误差线组合
Lizzy_Fly
博客等级 码龄5年 262粉丝 99原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值