Python学习笔记
文章平均质量分 64
目前包括Python基础与基于python的数据分析、机器学习。
世澈
继续卷。
展开
-
Python的特征优势及应用,编程基本流程及注释方法
Python的特征编程语言中的定位“脚本语言”(scripting language);高阶动态编程语言。简单易学一种代表简单主义的语言。伪代码本质是其最大的优点之一。语法极其简单,易上手。解释性&编译性不需要编译成二进制代码,可以直接从原代码运行程序,但是需要解释器。类似于JAVA或者Matlab;亦有编译执行的特性。面向对象即支持面向过程也支持面向对象的编程。高级语言使用Python语言编写程序无需考虑内存管理之类的底层。可扩展性及可嵌入原创 2022-04-12 21:06:43 · 251 阅读 · 0 评论 -
Python中的运算符:赋值运算符、算术运算符、比较运算符、布尔运算符、位运算符
运算符Python中的运算符包括:赋值运算符算术运算符比较运算符布尔运算符位运算符运算符的优先级(由低到高)类别运算符逻辑运算符or and not成员运算符in,not in身份运算符is,is not赋值运算符=,%=,/=,//=,-=,+=,*=,**=等于运算符!=,==比较运算符<,<=,>,>=按位或|按位异或^按位与&移位<<,>原创 2022-04-12 02:15:24 · 416 阅读 · 0 评论 -
编程思想:面向对象与面向过程;Python中类与对象的相关操作
编程思想面向过程适用于事物比较简单,可以用线性的思维去解决;面向对象适用于事物比较复杂,使用线性思维无法解决;面向对象和面向过程的共同点都是解决实际问题的一种思维方式;二者相辅相成;通过面向对象的思想从宏观上把握事物之间复杂的关系,方便我们对整个系统的分析;具体到微观操作,我们仍然用面向过程的方式处理。面向对象的技术类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。类变量:类变量在整个实例化的对象中原创 2022-04-17 17:18:15 · 254 阅读 · 0 评论 -
Python中程序的组织结构:顺序结构、选择结构、循环结构
导航顺序结构选择结构对象的布尔值循环结构while循环for-in循环range()函数break语句continue语句pass语句程序的组织结构任何简单或复杂的算法都可以由顺序结构;选择结构;循环结构;这三种基本结构组合而成;pass语句只用作占位符,用在语法上需要语句的地方;使用场景:搭建好语法结构,但未想好代码怎么写的时候;举例:if语句的执行体;for-in语句的循环体;定义函数时的函数体。顺序结构定义:程序原创 2022-04-13 19:13:25 · 445 阅读 · 0 评论 -
Python中的传递规则、浅拷贝与深拷贝
传递规则Python赋值过程中不明确区分拷贝和引用;一般对静态变量的传递为拷贝,对动态变量的传递为引用;字符串,数值,元组均为静态变量;列表,字典为动态变量;注意:对静态变量首次传递时也是引用,当需要修改静态变量时,因为静态变量不能改变,所以需要生成一个新的空间存储数据;浅拷贝Python中一般都是浅拷贝,拷贝时对象包含的子对象内容不拷贝;源对象和拷贝对象会引用同一个子对象;浅拷贝的方式:引入copy模块,使用其中的copy方法;举例:import copydd=co原创 2022-04-18 12:09:04 · 693 阅读 · 0 评论 -
字符编码以及Python中的保留(关键)字、标识符及变量相关操作
字符编码计算机只能识别0与1。ASCII编码表:“American Standard Code for Information Interchange”,美国信息交换标准代码;使用一个字节存储;目前为止共定义了128个字符,基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言;其中“A”在第56位;Unicode:统一码;使用两个字节去存储;几乎包含了全世界所有的字符;UTF-8:“Universal Character Set/Unicode Transf原创 2022-04-12 15:11:07 · 234 阅读 · 0 评论 -
Python中可能的出错原因、异常处理机制以及常见异常类型
出错原因的分类粗心导致的错误循环语句、if语句、else语句后面的冒号;缩进错误;使用中文符号,引号、冒号、括号;使用+试图将字符串类型与数字类型拼接;比较运算符“==”和赋值运算符“=”混淆;未定义(赋值)变量直接使用。知识不熟练导致的错误索引越界问题;方法参数设置错误;思路不清导致的错误输入类型不对应导致的错误异常处理机制使用try…except…[else…finally…]语法结构:try: 函数体except 错误类型一:原创 2022-04-16 12:25:45 · 358 阅读 · 0 评论 -
CMD中的一些Python操作:新建文件等
创建文件夹:在当前目录下创建文件夹:打开D盘d:创建test文件夹md test在其他目录下创建文件夹:使用md命令创建文件夹时,说明创建路径。举例:md d:\test\演示文件夹打开test文件夹cd test(只能打开同目录下文件)显示文件目录dir文件操作:创建指定内容的文件:echo print("Hello,world!")>>test.py此时输入文件名可以打开或者运行目录下文件更改文件名.原创 2022-04-12 15:13:50 · 811 阅读 · 0 评论 -
Python编程中遇到的报错(持续更新)
语法错误SyntaxError:invalid syntax未定义变量xNameError:name'x'is not defined意外的缩进IndentationError: unexpected indent只能使用连接符链接两个字符串类型数据TypeError: can only concatenate str (not "int") to str...原创 2022-04-13 21:19:15 · 476 阅读 · 0 评论 -
机器学习的引入、测算房价数学模型的Python实现
人类的学习:发现知识、运用知识;机器学习:(Machine Learning,缩写ML)建立模型、应用模型;如果一个系统能够通过执行某个过程改进其性能,这就是学习;(H.A.Simon)给定任务T和损失函数L(即性能度量P,或称作学习策略R),借助样本数据集D(历史数据)和学习算法A,训练处最优(损失最小)模型(用函数f表示),然后使用该模型对新样本进行预测;常用的应用场景数据挖掘;利用历史数据进行决策;依据商品之间的关联性进行商品摆放与分类;优惠券的定向发放;信用卡风险.原创 2022-04-20 15:17:17 · 901 阅读 · 0 评论 -
Python中的模块、内置模块、第三方模块、包及相关操作
模块(Modules)一个模块中可以有多个函数、类、语句;使用模块的好处:方便其他程序和脚本的导入并使用;避免函数名和变量名冲突;提高代码的课维护性;提高代码的重用性;模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py;模块可以被别的程序引入,以使用该模块中的函数等功能;(这也是使用 python 标准库的方法。)模块的导入import语句想使用Python源文件,只需在另一个源文件里执行import语句,语法如下:import module1[, module原创 2022-04-18 18:22:46 · 747 阅读 · 0 评论 -
Python的命名空间与作用域
命名空间提供了在项目中避免名字冲突的一种方法;各个命名空间是独立的,一个命名空间中不能有重名,但不同的命名空间是可以重名而没有任何影响;命名空间的分类内置名称(built-in names)Python 语言内置的名称,比如函数名abs、char 和异常名称BaseException、Exception 等等。全局名称(global names)模块中定义的名称,记录了模块的变量,包括函数、类、其它导入的模块、模块级的变量和常量。局部名称(local names)函数中原创 2022-04-15 23:14:26 · 545 阅读 · 0 评论 -
Python中的数据类型:数字、字符串、列表、字典、元组、集合及相应操作
数据类型分类数字(number)字符串(string)列表(list)字典(dictionary)元组(tuple)集合(sets)数字整型(int,integer)Python3中只有一种整数类型int,表示为长整型,没有Python2中的long;可以表示正数、负数和零;进制:默认使用十进制;使用起始标记后输出时转化为十进制;进制起始基本数二进制0b0~9八进制0o0~7十六进制0x0~9,A~F原创 2022-04-12 15:06:10 · 1344 阅读 · 0 评论 -
Python的编码规范
分号不要在行尾加分号;也不要用分号将两条语句放在同一行;行每行长度不超过八十个字符;以下情况除外:长的导入模块语句;注释里的URL;不要使用反斜杠连接行;Python会将圆括号中括号花括号中的行隐式地连接起来;比如在表达式地外围增加一对额外的额圆括号;if (width == 0 and height == 0 and color == 'red' and emphasis == 'strong'):也可用于过长地文本字符串;在注释中,如果有必要可以将长地UR原创 2022-04-19 19:08:01 · 102 阅读 · 0 评论 -
面向对象的三个特征:封装、继承、多态
面向对象的三个特征封装继承多态封装提高程序的安全性将属性和方法(数据和行为)包装到类对象中。在方法内部对属性进行操作,在类对象外部调用方法。无需关心方法内部的具体实现细节,从而隔离了复杂度;在Python中没有专门的修饰符用于属性的私有,如果该属性不希望在类对象外部被访问前面可以使用两个下划线__;继承提高代码的复用性;如果一种语言不支持继承,那么类就没什么意义;如果一个类没有继承任何类,则默认继承object;子类(派生类 DerivedClassName)会继承父原创 2022-04-17 20:58:08 · 178 阅读 · 0 评论 -
Python中的输入、输出函数;数据类型转换
print()函数可输出内容数字;字符串;使用引号标记字符串。含有运算符的表达式;表达式:含有运算数和操作符;输出为该表达式的运算结果。内容输出的目的地显示器;文件;举例fp=open("F:/text.txt","a+")//使用open()函数在对应路径下创建文件,“a+”为该函数的操作类型print("Hello,world!",file=fp)//将Hello,world!输入到对应文件夹中fp.close()//结束操作,关闭文件夹原创 2022-04-12 22:33:51 · 644 阅读 · 0 评论 -
Python中对文件的读写操作、目录操作
文件读写的原理读写即“IO操作”操作流程:graph LRA[Python操作文件]-->B[打开或新建文件]B-->C[读\写文件]C-->D[关闭资源]文件读写操作open()函数按文件中数据的组织形式分类:文本文件:存储字符文本;二进制文件:数据内容以字节存储,比如mp3音频\jpg图片\doc文档语法规则;file=open(filename[,mode="r",encoding])file:被创建的文件对象,相对或绝对路径;filen原创 2022-04-19 11:06:16 · 707 阅读 · 0 评论 -
机器学习中的随机模型、回归分析方法、 随机变量与确定性变量等
数学模型的分类理想模型;上一节中对房屋价格的计算;即“f(x) = ωx + b”随机模型:带观测误差的模型:随机模型包含多个随机变量,不同的随机变量表示不同的总体,或者表示同一总体的不同特征\属性;y ≈ f(x) = ωx + b,或y ≈ f(x) + e;e:随机观测误差D = {(x_1, y_1), (x_2, y_2)…(x_m, y_m)}D:样本、\样本集;m:样本容量、\样本大小\样本点个数;随机模型的算法构建过程采集多个样本数据;绘原创 2022-04-22 16:54:21 · 2295 阅读 · 0 评论 -
机器学习中对传染病的数学建模和多元模型的简述
模型假设的方法数据可视化建模;数学建模;数据可视化建模在数据分析中被称作:探索性数据分析;高尔顿的身高回归定律;数学建模最直接最科学的建模方法;对传染病传播的数学建模参数地区总人口为N(已知常数)易感人群(Susceptible),记作:S或者S(t);感染人群(Infectious),记作:I或者I(t);康复人群(Recovered),记作:R或者R(t);则有以下数据关系:S = N - II(t) = di/dt = β(I/N)S - γI原创 2022-04-24 09:41:39 · 361 阅读 · 0 评论 -
Python中的函数及相关操作
函数定义:函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。为什么需要函数:复用代码;隐藏实现细节;提高可维护性;提高可读性,便于调试;函数的创建语法格式:def 函数名(形式参数): 函数体函数代码块以def关键词开头,后接函数标识符名称和圆括号();任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数;默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的;函数的第一行语句可以选择性地使用文档字符串,用于存放函数原创 2022-04-15 22:48:07 · 58 阅读 · 0 评论 -
安装Python及VS code下环境搭建
安装Python及VS code下环境搭建原创 2022-04-10 16:00:47 · 726 阅读 · 0 评论 -
pandas中DataFrame的常用操作
数据集的信息使用info()方法输出数据集的信息举例import numpy as npimport matplotlib.pyplot as pltimport matplotlibimport pandas as pdimport sklearn# matplotlib.rc("font",family='FangSong')df = pd.read_csv('data\\boston.csv')# 读取数据集df = df.sample(500, replace=False,原创 2022-05-06 13:51:27 · 660 阅读 · 0 评论 -
机器学习中数据集的加载和预处理
机器学习使用样本数据集训练模型:如果数据集出现问题,那么训练结果也会出现问题(garbage in, garbage out.);通常需要对数据集进行检查,对有问题的数据集进行预处理;加载并浏览数据集举例:```import numpy as npimport matplotlib.pyplot as pltimport pandas as pdhouse = pd.read_csv('data\\boston.csv')print(house.shape)```数据项说明原创 2022-05-04 11:24:38 · 1347 阅读 · 0 评论 -
matplotlib中绘制多个子图形
subplot()函数语法结构plt.sublot(a,b,c)参数 a 表示子图有几行;参数 b 表示子图有几列;参数 c 表示当前子图的序号;subplots_adjust()函数语法结构plt.subplots_adjust(left=None,bottom=None,right=None,top=None,wspace=0.15,hspace=0.15)参数取值范围为0~1之间的小数,表示百分比;wspace,hspace表示子图之间的举例;举例impor原创 2022-05-05 14:40:30 · 548 阅读 · 0 评论 -
pandas中的索引和多层索引
索引分类Index;单层索引;MultiIndex;多层索引;举例:import pandas as pdimport numpy as npdf = pd.DataFrame(np.random.rand(4, 4))*10//1print(df)输出结果为: 0 1 2 30 7.0 9.0 6.0 1.01 9.0 0.0 2.0 2.02 3.0 7.0 8.0 4.03 7.0 6.0 8.0 4.0原创 2022-05-08 22:05:03 · 1117 阅读 · 0 评论 -
numpy中的文件读取操作
CSV文件Comma-Separated Value(逗号分隔值文件);显示:表格状态;源文件:换行和逗号分隔的格式化文本,每一行的数据表示一条记录;文件操作读取文件语法结构:np.load(filename.dtype=np.float, delimiter=None, skiprows=0, usecols=None, unpack=False)filename:文件名;dtype:数据类型(可选),表示文件字符串以什么数据类型读入数组中,默认为np.float;del原创 2022-04-29 19:22:32 · 2252 阅读 · 0 评论 -
pandas中DataFrame数据合并及分组
数据合并join()将行索引相同的数据合并在一起;举例:import pandas as pdimport numpy as npdf_1 = pd.DataFrame({ 'A':[1, 2, 3, 4], 'B':[1, 2, 3, 4], 'C':[1, 2, 3, 4], 'D':[1, 2, 3, 4], 'E':[1, 2, 3, 4] })df_2 = pd.DataFrame({ 'f':[1, 2, 3],原创 2022-05-07 19:13:10 · 1683 阅读 · 0 评论 -
matplotlib的引入、常用图形对比及其他常见绘图工具
最流行的Python底层绘图库,主要做数可视化图表,模仿MATLAB构建;作用能将数据进行可视化,更直观的呈现;使数据呈现更客观、更具说服力;matplotlib可绘制的图形汇总Examples — Matplotlib 3.5.1 documentation常用图形的对比折线图:以折线的上升或下降来表示统计数量的增减变化的统计图;能显示数据的变化趋势,反映事物的实际情况(变化);直方图:由一系列不等高的纵向太傲文或线段表示数据分布的情况;绘制连续性数据,展示一组或多组原创 2022-04-26 15:19:09 · 1262 阅读 · 0 评论 -
numpy中的NAN和INF
Nannan, Nan, NAN均表示:not a number,不是一个数字;什么时候numpy中会出现nan:当读取本地文件为float的时候,如果有缺失,会出现nan;当做了一个不合适的计算时(比如无穷大减去无穷大),会出现nan;数据类型为float;两个nan不相等;可以利用该属性判断数组中的nan个数;np.count_nonzero()统计传入数组中不为零元素的个数;传入s!=s时,可以统计s中nan的个数;传入np.isnan(),可获取nan个数;原创 2022-04-30 17:40:38 · 840 阅读 · 0 评论 -
人工智能的三个发展阶段,机器学习问题的主要来源、分类与教学层面
人工智能发展阶段基于知识:早期人工智能,将人的知识以规则或位词的形式转移给计算机,然后计算机基于这些规则进行演绎推理;专家系统、机器定理证明;属于计算机科学的范畴;基于特征:不依赖上层知识,基于更底层的特征数据;基于底层特征数据进行预测或分类需要先建立并训练模型,相当于计算机从训练数据中获得知识,这就是机器学习;至此,机器学习开始成为人工智能研究的主要领域;回归分析、贝叶斯决策;基于数据:随着信息化和互联网的普及,各种数据被存储,基于这些原始数据建立数据模型;基于大数据原创 2022-04-24 11:35:23 · 1125 阅读 · 0 评论 -
机器学习使用Python进行编程时的编程环境和数据集、并以波士顿房价数据集为例进行简单操作
编程环境和数据集常用与机器学习相关类库由第三方机构SciPy.org开发的开源类库Numpy数值计算扩展最主要的类:ndarray(多维数组类)Pandas数据分析最主要的类:Series(一维序列类)、DataFrame(二维表格类)Matplotlib数据可视化最主要的类:pyplot(简单常用的绘图功能)scikit-learn面向机器学习(尤其是统计学习)的类库;支持绝大部分回归任务、分类任务、聚类任务;目前不支持深度学习和并行计算skle原创 2022-04-24 16:36:07 · 1071 阅读 · 2 评论 -
pandas的引入及Series的基础操作、读取外部文件
作用相对于numpy,pandas更进一步能帮助处理数值型数据之外的其他类型数据(比如时间序列、字符串等);常用数据类型Series:一维,带标签数组DataFrame:二维,Series容器Series创建Series数组语法结构:pd.series(数据序列, index=索引序列)举例:pd.Series(np.arange(11), index=list("asdfghjkkll"))输出时一一对应;索引序列:大写字母构成序列:import stringstrin原创 2022-05-02 16:39:52 · 670 阅读 · 0 评论 -
numpy的引入及数组、轴操作
优势快速;方便;科学计算的基础库;介绍一个在Python中做科学计算的基础库,重在数值计算,也是大部分Python科学计算库的基础库,多用在大型、多维数组上执行数值运算。使用数组创建数组:import numpy as npa_1 = np.array([1, 2, 3, 4, 5])a_2 = np.array(range(1, 6))a_3 = np.arange(1, 6)以上三个数组的内容相同;arange()与range()区别:arange([start,原创 2022-04-28 18:46:16 · 695 阅读 · 0 评论 -
pandas中的DataFrame及相关操作
是一个二维容器;pandas中会自动根据数据类型更改dataframe的dtype类型;举例:pd.DataFrame(np.arange(12).reshape(3, 4))输出结构为含有行索引和列索引的对象;行索引:表示不同行,叫index,0轴,axis=0;列索引:表示不同列,叫columns,1轴,axis=1;可对行索引列索引进行赋值:pd.DataFrame(np.arange(12).reshape(3, 4), index=list("abc"), columns=l.原创 2022-05-02 22:02:57 · 1170 阅读 · 0 评论 -
numpy中的zeros()函数
简介创建指定长度或形状的全为0的ndarray数组;在默认情况下,创建的数组元素类型为浮点型,如果要使用其他类型可以设置dtype参数返回给定类型的新数组;用法语法结构:import numpy as npnp.zeros(shape, dtype=float, orser='c')shape:定义返回对俄数组的形状;创建多维数组时,用括号将shape数据组括起来;dtype:生成数组的数据类型,默认为np.float64order:可选参数,{‘c’, ‘f’},表示是否原创 2022-05-06 13:19:25 · 2112 阅读 · 0 评论 -
matplotlib中条形图(柱状图)的简单使用及美化
世界电影票房前十名统计图世界电影票房前十名的数据如下:阿凡达 : 28.47 亿美元复仇者联盟4:终局之战 : 27.97 亿美元泰坦尼克号 : 22.02 亿美元星球大战:原力觉醒 : 20.69 亿美元复仇者联盟3:无限战争 : 20.48 亿美元蜘蛛侠:英雄无归 : 18.89 亿美元侏罗纪世界 : 16.71 亿美元狮子王 : 16.63 亿美元复仇者联盟 : 15.19 亿美元速度与激情7 : 15.12 亿美元绘制纵向条形图from matplotlib impor原创 2022-04-26 22:15:35 · 3544 阅读 · 0 评论 -
机器学习中对数据集进行拆分及模型训练
对数据集的处理经过预处理后得到:特征集X目标集Y将特征集拆分;一般来说机器学习的数据集都会被划分成三个个子集:训练集,验证集和测试集;我们拿到的数据集通常都是由人工或者半自动化的方式收集来的,每个输入数据都有对应的输出,机器学习要做的是学习这些已经收集好的数据中所包含的信息,并且在新的输入数据出现时成功预测到输出;训练集是用来训练模型的,给模型输入和对应的输出,让模型学习它们之间的关系;验证集是用来估计模型的训练水平。根据验证集的表现来选择最好的模型;测试集是训练好的模型在模拟的“原创 2022-05-05 15:05:21 · 3657 阅读 · 0 评论 -
matplotlib中折线图的简单使用及美化
每两小时的气温折线图假设一天中每隔一个小时的气温为[19, 18, 18, 17, 17, 16, 16, 18, 22, 24, 26, 28, 29, 30, 31, 31, 31, 29, 27, 24, 23, 22, 21, 19 ]from matplotlib import pyplot as plt # 导入pyplotx = range(0, 24, 1) # 该函数生成的数组在X轴位置y = [19, 18, 18, 17, 17, 16, 16, 18, 22, 24, 2原创 2022-04-25 17:57:21 · 1364 阅读 · 0 评论 -
matplotlib中直方图的简单使用及美化
在图中指定位置显示信息:plt.text(x,y,s,family,fontsize,style,color)x,y:注释内容位置s:注释文本内容family:字体fontsize:字体大小style:字体样式 normal、italic(斜体)、oblique(斜体)color:颜色直方图适用于连续分布数字统计分布状态未经处理的数据对二十部电影的时长分布进行绘图from tkinter.font import namesfrom matplotlib import原创 2022-04-27 22:05:43 · 1056 阅读 · 0 评论 -
matplotlib中散点图的简单使用及美化
气温随时间变化的规律为寻找当地气温随时间变化的规律,对四十天内气温的变化进行统计得到如下数组:[32, 25, 15, 19, 18, 23, 27, 23, 24, 24, 24, 25, 17, 17, 17, 22, 26, 27, 28, 28, 20, 17, 19, 19, 23, 19, 19, 23, 24, 26, 27, 28, 28, 29, 26, 27, 29, 30, 29, 29]from matplotlib import pyplot as pltimport ma原创 2022-04-26 18:16:51 · 607 阅读 · 0 评论