python学习
文章平均质量分 64
浅酌深思
漫漫取经路,求各路大佬指导
展开
-
【机器学习数学基础】优化算法
参考:https://blog.csdn.net/xbmatrix/article/details/56682466一、最优化方法指在某些约束条件下,决定某些可选择的变量应该取何值,使所选定的目标函数达到最优的问题。常见情形:利用目标函数的导数通过多次迭代来求解无约束最优化问题。实现简单,coding 方便,是训练模型的必备利器之一。大纲:1.最速下降法2.共轭梯度法3.牛顿法4.拟牛顿法5.约束非线性优化6.KKT条件参考书籍:统计学习方法、西瓜书...原创 2021-09-15 10:49:42 · 162 阅读 · 0 评论 -
【机器学习数学基础】概率论
知识点-查询考研全书随机变量与概率分布贝叶斯定理期望方差和条件数学期望大数定律特征函数和中心极限定理统计学基本概念极大似然估计最大后验估计蒙特卡洛方法Bootstrp方法EM算法...原创 2021-09-14 20:43:37 · 144 阅读 · 0 评论 -
【机器学习】数学基础-微积分
1.O(n)是一个函数,表征算法时间复杂度的一个函数。2.极限:略,高数3.导数:高数—变化率,记一下求导公式快速求导途径:1.求导网站:https://www.derivative-calculator.net/2.python模块 sympy用于进行非数值的变量,其实就是未知数x,y等来参与计算,他们并没有实际数值4.求导法则https://baike.baidu.com/item/%E5%AF%BC%E6%95%B0%E8%A1%A8/10889755?fr=aladdin5.费原创 2021-09-01 16:08:05 · 361 阅读 · 0 评论 -
【科学数据库】pandas时间序列||||||||
时间序列是一种非常重要的数据形式很多统计数据以及数据的规律也都和时间序列有着非常重要的联系参考资料:系统介绍:https://www.cnblogs.com/zhangyafei/p/10513893.html知乎详解:https://zhuanlan.zhihu.com/p/106675563常用方法:https://blog.csdn.net/weixin_38753213/article/details/107925542上图中关于频率的描述缩写:WOM-3FRI是该月第三个星期五的原创 2021-08-31 20:44:41 · 75 阅读 · 0 评论 -
【科学数据库】数据的合并与分组聚合||||||||
回顾:numpy数组的拼接np.hstack(t1,t2)np.vstack(t1,t2)Series如何创建,如何进行索引和切片pd.Series([])pd.Series({}) #字典的键就是Series的索引s1[“a”]s1[["a","c"]]s1[1]s2[[1,5,3]]s2[4:10]DataFrame如何创建,如何进行索引和切片pd.DataFrame([[],[],[]]) #接收2维数组pd.DataFrame({“原创 2021-08-31 20:14:06 · 139 阅读 · 0 评论 -
【科学数据库】pandas基础
pandas的常用数据类型处理字符串,日期类型等等常用数据类型:Series 一维,带标签数组DataFrame 二维,Series容器Series创建本质上是创建数组指定索引用的格式是列表字典自带索引用字典创建Series:切片:注意以下 的区别:例子:数据存在csv中,使用 pd. read_csv 读取读取后数据类型为DataFrame以下结果和series不同,它有三列读取数据库mysql中的数据:pd.read_sql(sql_sentence原创 2021-08-31 18:53:59 · 315 阅读 · 0 评论 -
【科学数据库】numpy
一、numpy(python中做科学计算的基础库)重点是数值计算多用于大型多维数组(矩阵)二、numpy创建数组import numpy as npa=np.append([1,2,3,4,5])b=np.array(range(1,6))c=np.arange(1,6)#以上为创建一个【1,2,3,4,5】数组的三种写法**显示数组的类名:**type(a)显示数组的类型:表示当前数组内锁存放的数的类型指定创建数组内的数据类型:更改数组的数据类型:或者可以写成a.as原创 2021-08-25 19:34:43 · 918 阅读 · 0 评论 -
【科学数据库】matplotlib其他绘图
0.拓展练习—加图例、多个折线添加多条线,二次传入!!plt.plot(x1,y)plt.plot(x2,y)或者是x一致,y不同补充:绘制网格:plt.grid(参数)–一般用于折线图添加图例label写过的才会在图例里写这个项plot函数可以使用参数来指定划线的线形状:不同图的特点对比1.散点图绘制实现: 例:使用函数:from matplotlib import pyplot as pltfrom matplotlib import font_manag原创 2021-08-20 18:29:07 · 85 阅读 · 0 评论 -
【数据结构】树与树的算法
树与树的算法树的概念树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:1.每个节点有零个或多个子节点;2.没有父节点的节点称为根节点;3.每一个非根节点有且只有一个父节点;4.除了根节点外,每个子节点可以分为多个不相交的子树;树的术语节点的度:一个节点含有的子树的原创 2021-08-11 18:33:46 · 409 阅读 · 0 评论 -
【数据结构】希尔/归并排序
归并排序—实践中常用https://blog.csdn.net/jianyuerensheng/article/details/51262984排序原理:**思想:**先递归分解数组,再合并数组。将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。3、工作原理:(1)申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列(2)设定两个指针,最原创 2021-08-06 19:30:41 · 137 阅读 · 0 评论 -
【数据结构】堆栈/队列/排序算法
线性表用来干什么?(顺序表和链表)线性存储数据栈概念:用线性表实现- 后进先出-LIFO-Last In First Out堆栈(也叫栈):容器,可存入数据元素,进行访问、删除单端操作:只允许在容器一端(栈顶端-TOP)进行加入(push)输出(pop)数据没有位置概念,任何时候均可访问默认访问顺序:后进先出-LIFO*栈的实现:(可以用顺序表/链表来写一个栈)实现的操作:–要点列表元组就是采用顺序表技术,所以无需再重写 顺序表类,直接利用列表来进行辅助存储即可—只需要满足先进先出的栈的原创 2021-08-05 16:33:05 · 399 阅读 · 0 评论 -
【数据结构】双向链表
https://blog.csdn.net/m0_52762927/article/details/119378239双向链表每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。双向和单向 的对比:单向链表:只有一个指向下一个节点的指针。优点:单向链表增加删除节点简单。遍历时候不会死循环;缺点:只能从头到尾遍历。只能找到后继,无法找到前驱,也就是只能前进。适用于节点的增加删除。双向链表:有两个指针,一个指向前原创 2021-08-04 17:42:35 · 137 阅读 · 0 评论 -
【数据结构】单向循环链表
单向循环链表(首尾相连)单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。ps:关于类加上object----object类似于一个基础类,协商相当于自定义的类继承了object的功能,在python3里即使不写,也默认加载obiect。链表里:a=b表示将a指向b代码实现与详解(注释内)class Node(object): """节点""" def __init__(self, item): self.ite原创 2021-08-04 15:50:02 · 155 阅读 · 0 评论 -
【数据结构】链表-单链表
链表定义:在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址)。链表与顺序表的区别:顺序表的存储空间必须连续注意:链表是我们自行定义的存储结构,本质就是利用类定义描述其功能ps:关于存储方式:1.a=10—a表示一个地址,地址指向值2.int a=10----a被确定为只能存整数,此时a表示存整数10 的单元ps:类属性和对象属性区分私有属性(内部函数使用,对外不暴露):书写时的惯用写法,前加下划线,比如链表的self._head1.单向链表·单向链表也叫单链表·链表原创 2021-08-03 20:42:47 · 218 阅读 · 0 评论 -
顺序表-概述
顺序表(线性表之一)元素整体化管理,需要将元素归置成元素组。**线性表:**序列元素的组织形式,是某类元素的一个集合,还记录着元素之间的一种顺序关系。线性表是最基本的数据结构之一。根据线性表的实际存储方式,分为两种实现模型:顺序表:将元素顺序地存放在一块连续的存储区里,元素间的顺序关系由它们的存储顺序自然表示。链表,将元素存放在通过链接构造起来的一系列存储块中。顺序表的存储形式:1.元素大小相同–连续存储数据元素-连续存储元素的下标是其逻辑地址。存储的物理地址(实际内存地址)=存储原创 2021-08-03 10:50:39 · 239 阅读 · 0 评论 -
【py数据结构与算法】基础概念
数据结构与算法1.好的算法可节省运算时间1. 2.算法效率衡量** 1.2.1时间复杂度**算法完成工作最少需要多少基本操作,即最优时间复杂度(理想上限,实际意义不大)算法完成工作最多需要多少基本操作,即最坏时间复杂度****(基础下限,可以评估算法的基础操作–主要关注这一项)**算法完成工作平均需要多少基本操作,即平均时间复杂度**(对算法的全面评价)1.2.2大O记法*–实际意义有限其实类似于函数求了边界,看函数是否有上限,在n无穷大处单侧收敛原理:“大O记法”:对于单调的整数函数f,原创 2021-08-01 23:56:06 · 428 阅读 · 1 评论 -
【PY】python操作SQLite数据库
python操作SQLite数据库多张表–存在数据库。数据库编程架构:SQLite有动态宽容的特点—比如:写入设定的size是20 ,但实际输入大于20也可以动态兼容SQL语句简述:1,是在以下软件中操作1.查询2.插入数据表中数据更新:1.用表项名更新2.用rowid更新(rowid也叫OID)3.删除**在python中操作SQLite数据库1.内置模块:sqlite32.使用的软件(后续学数据库再安装)?pycharm里面在哪打开?3.具体操作原创 2021-07-21 20:22:55 · 323 阅读 · 0 评论 -
【py】任务81/82/83 CSV文件读取/Excel数据文件处理
SublimeText-Python-配置和pycharm一样,也是编辑器。新手建议pycharm虚拟环境配置-CSV文件读取1。pycharm创建配置虚拟环境–便于维护与扩展虚拟运行环境可以将项目分离,每个项目可以拥有一个独立的运行环境,可以让多个项目公用一个虚拟环境,为了使得各个项目环境不冲突,可以在pycharm上创建虚拟环境,保障项目独立不受影响一是项目保存地址二选择new_environment后其他不用动,自己默认好的,图中可见虚拟环境和项目内容在一起放着,三是选择相应的解释器原创 2021-07-15 23:16:48 · 230 阅读 · 0 评论 -
【py】任务67-81并发编程
GIL是解释器概念—进一步查询进程:每个软件可以打开很多次,每次打开都是一个进程。进程由操作系统进行操作调度线程:当前进程中的任务分成多个独立子任务,子任务可以并行运行,这就是线程。同一个进程中的多个线程可以共享进程的空间地址,数据结构等资源。**多线程–thread模块(不推荐实际使用)同步源语:实现同步线程需要用到同步源语Threading模块方式一、引入threading模块下的thread类来引入多线程:优点是,可以先声明好,再在合适的时间开始执行多线程例:设置参数如.原创 2021-07-13 23:26:56 · 72 阅读 · 0 评论 -
【py】任务55/64正则表达式及系统工具模块
一,正则表达式本身是一个字符串,格式是 元字符+其他字符例一 在文本中查询所有年龄:查询数字:\d 查询单一数字\d+查询一组数字(多位数)查字母:[A-Z]\w 查一个在A-Z之间的大写字符[A-Z]\w+查一组在A-Z之间的大写字符二、正则表达式语法:三、正则表达式应用1。需要引入re模块–import re在编译时,在模式前面加r,确保需不要转义。所谓模式,可以理解为是查找值的开头(another)或者构成的结构(\d)ps:.findall()返回的是原创 2021-07-12 17:49:00 · 98 阅读 · 0 评论 -
【py】任务45-53 字符串相关操作
一、对象的持久化将当前的进度或状态存在相关存储区—序列化从存储中将存储内容还原出来—反序列化以上也是持久化(类似于断点续传,断点后数据不丢失)方式:1。使用格式化文本–扁平文件(文本文件)进行序列化 存储pickle应用—提供了模块,封装了一系列方法接口序列化对象为字符串:新建一个字典表,将字典表存储到s:以字节字符串的形式存储。把字典表从s中还原出来:反序列化序列化对象到文件shelve应用:----模块也叫shelve将多个对象存在一个文件里,区别多个对象的方原创 2021-07-07 09:11:48 · 74 阅读 · 0 评论 -
任务34-42 异常处理/测试等
一、错误异常处理错误类型:1。语法错误表示代码拼写、少逗号,格式等等语法问题2。语义错误(5/0 除数为0之类的)**比如,如图,就是“除0”异常3。逻辑错误(程序设计问题)**不抛异常,通过运行结果来分析程序排出异常异常处理:try-except**finally:**表示前面是否捕获,最终都要执行此语句块:常用于最终需要释放资源的场景,比如文件操作,数据库操作raise 异常:自己定义主动抛异常二、简单的代码测试用例测试函数(没太懂)assert* 断言函数,比原创 2021-07-05 16:58:53 · 137 阅读 · 1 评论 -
任务30/31 面向对象编程oop
面向对象的基本特征:继承、封装、多态i封装:交互性提示符之下,输入print(实例名),如果不设置__str__函数则默认执行__repr__str()和repr()都可以将python中的对象转换为字符串两者之间的目标不同:str()主要面向用户,其目的是可读性,返回形式为用户友好性和可读性都较强的字符串类型;repr()面向的是python解释器,或者说开发人员,其目的是准确性,其返回值表示python解释器内部的含义,常作为编程人员debug用途。对类的操作:类中定义了变量,这个变量原创 2021-07-04 19:12:06 · 86 阅读 · 0 评论 -
【py】任务26:包与模块管理及面向对象初步
一、包在程序执行的时候,是有一个入口变量’name’,入口变量一般默认等于‘main’,表示默认优先 执行main脚本文件。我们同样可以通过设置来设置执行文件注意:写作双横线:name3. 模块因功能而异,将不同功能代码写作不同文件,每个文件就是一个模块模块使用:1。import–(可导入目录中自定义的模块)直接导入了模块中的全部方法。2。from(从xx地方导入)比如:表示从models模块里引入pages函数,那么在下方使用函数时,就不用写模块引用models.pages(),直接原创 2021-07-03 19:05:48 · 63 阅读 · 0 评论 -
【py】任务23-函数应用与工具
函数-lambda表达式不加变量加变量2。1ps:emp.get(参数1,函数名1)(函数参数)即在参数1 对应的键没找到,则默认执行函数名1 对应的函数3. 通过字典表来使用函数/lambdadef hello_c(name): print('你好',name)def hello_e(name): print('hello',name)def hello_j(name): print('kaoni',name)lang={'c':hello_c,'e原创 2021-07-01 16:39:29 · 59 阅读 · 0 评论 -
【py】任务22-函数与Lambda表达式
一、函数0。参数传递类型1。定义参数name在此处默认为字符串注意:支持原位改变的变量比如列表、字典,当参数的时候,需注意函数内部的改变可能会影响到参数本身的值2。函数参数的 匹配未标明匹配则按照顺序标注则按照标注顺序【参数为元组–(*tuple)】参数数量不定,可设置参数为一个不定长的元组:例统计成绩,但不知有多少门,*scores表示不定长元组注意,以上定义后,调用函数传递参数时,参数不能直接写元组,比如:不报错,修改一下:4. 【参数为字典】—(**dict)直接原创 2021-07-01 14:17:29 · 90 阅读 · 0 评论 -
任务18/19:迭代+函数定义
一、迭代1。能使用for循环打印的比如文件、元组、列表、字典等,均是可迭代的,支持迭代协议,其内部有个_next_()方法,能实现迭代元素。使用:比如文件:f.next()也可使用全局函数:next()next()用来移动指针到 下一个元素,迭代打出的变量占据的内存空间少2。迭代工具能否迭代是看会不会实现迭代协议:迭代器对象(比如文件):默认支持迭代,已经实现迭代协议可迭代对象(比如列表):调用iter()=》iter()用于生成迭代器使用for可默认帮调用iter(不需额外再写)判断原创 2021-06-30 19:31:23 · 82 阅读 · 0 评论 -
【py】任务14/15-语句表达式if分支-循环
一、语句、条件分支1、赋值语句-变量声明扩展序列解包赋值:用星号解包总能得到一个列表3。print 的参数print还可以跟文件操作,表示把打印结果写在文件里4。if语句elif(c中的else if)5。匿名函数-lambda字典表的值是函数:三元条件语句:二、循环语句1。while—无限循环可用ctrl+c停下2。break跳出循环,coutinue跳出头部进行下一波循环3。pass是占位符,没卵用,就是在还不知道写什么功能的情况下占个位子–用在w原创 2021-06-30 15:42:49 · 74 阅读 · 0 评论 -
【python学习】07文件与类型汇总
文件操作1. 基础语法打开本地文件将其传递到操作对象文件变量:f.read()是读所有内容f.readline()读单行f,readlines()读取所有的行到列表中(如下图)依次显示单行:f,close()可以不写系统会自己加,但建议写ps:type(变量)用于查询变量的数据类型2.pickle 存取本地的python对象二进制文件后缀自己定义。存入:pickle.dump(对象,目标文件)取出:pickle.load(文件)3.上下文管理器(避免忘记关闭文件,会原创 2021-06-25 17:31:52 · 129 阅读 · 0 评论 -
【python基础】第6节:列表与元组
学习目标:字典表元组学习内容:字典表和元组的基础语法操作学习笔记:1.pycharm创建新项目-初学模板选择pure python(纯净的py)一、字典表{}–键+值区别于列表的固定顺序,字典无序。0.字典增加新项,直接赋值不报错(列表会报错)1.d.get(键,预设返回值)键存在则返回对应值,键不存在,则返回预设返回值2.转换成字典类型dict()构造函数3.字典表和列表都支持原位赋值改变,字符串不行4.字典表新增项(使用d.update(字典表子表))与上面直接创建新原创 2021-06-25 15:18:31 · 477 阅读 · 0 评论