自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 问答 (2)
  • 收藏
  • 关注

原创 Python数据分析笔记_第2天(matplotlib_直方图)

matplotlib直方图直方图注意事项:组数:将数据分组,当数据在100以内,按数据多少常分5-12组组数=极差/组距=(max(a)-min(a))/组距组距:每个小组两个端点之间的距离只有未经统计的原始数据才能绘制直方图(使用hist方法)'''已有250部电影的时长,希望统计出这些电影时长的分布状态(比如时长为100分钟到120分钟电影的数量,出现的频率)等信息a=[131, 98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 13

2021-02-28 22:39:44 195 1

原创 Python数据分析笔记_第2天(matplotlib_散点图+条形图)

常用统计图折线图:以折线的上升或下降来表示统计数量的增减变化的统计图。特点:能够显示数据的变化趋势,反映事物的变化情况。(变化)直方图:由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据范围,纵轴表示分布情况。特点:绘制连续性的数据,展示一组或者多组数据的分布状况(统计)条形图:排列在工作表的列或行中的数据可以绘制到条形图中。特点:绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计)散点图:用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间

2021-02-28 21:07:10 243

原创 Python数据分析笔记_第1天(matplotlib_折线图)

matplotlib绘图模块假设一天中每隔两个小时的气温(℃)分别是[15,13,14.5,17,20,25,26,26,27,22,18,15]from matplotlib import pyplot as pltx = range(2, 26, 2)y = [15, 13, 14.5, 17, 20, 25, 26, 26, 27, 22, 18, 15]plt.plot(x, y) # 模块绘折线图plt.show() # 展示图形matplotlib细节设置设置展示图片的

2021-02-27 21:37:07 339

原创 python学习笔记_第34天(二叉树)

文章目录二叉树二叉树的基本概念二叉树的性质(特性)二叉树的节点表示以及树的创建二叉树的遍历深度优先遍历练习广度优先遍历(层次遍历)二叉树二叉树的基本概念二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)二叉树的性质(特性)在二叉树的第i层上至多有2^(i-1)个结点(i>0)深度为k的二叉树至多有2^k - 1个结点(k>0)对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则

2021-02-25 22:40:41 121

原创 python学习笔记_第33天(树与树算法)

文章目录树与树算法树的概念树的术语树的种类树的存储与表示顺序存储链式存储常见的一些树的应用场景树与树算法树的概念树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每

2021-02-24 22:29:14 98

原创 python学习笔记_第33天(二分法查找)

文章目录常见排序算法效率比较搜索二分法查找二分法查找实现时间复杂度常见排序算法效率比较搜索搜索是在一个项目集合中找到一个特定项目的算法过程。搜索通常的答案是真的或假的,因为该项目是否存在。 搜索的几种常见方法:顺序查找、二分法查找、二叉树查找、哈希查找二分法查找二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,

2021-02-24 20:53:23 167

原创 python学习笔记_第 32天(归并排序)

归并排序归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。归并排序的分析时间复杂度最优时间复杂度:O(nlogn)最坏时间复杂度:O(nlogn)稳定性:稳定...

2021-02-23 22:56:05 87

原创 python学习笔记_第31天(重点!快速排序)

文章目录希尔排序希尔排序过程希尔排序的分析时间复杂度归并排序归并排序的分析时间复杂度希尔排序希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希尔排序过程希尔排序的基本思想是:将数组列在一个表中并对列分别

2021-02-21 23:32:31 96

原创 python学习笔记_第30天(插入排序+重点!希尔排序)

文章目录插入排序插入排序分析时间复杂度快速排序快速排序的分析时间复杂度插入排序插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。插入排序分析时间复杂度最优时间复杂度:O(n) (升序排列,序列已经处于升序状态)最坏时间复杂度:O(n^2)稳定性:稳定快速排序快速排序(

2021-02-20 22:36:59 109

原创 python学习笔记_第30天(冒泡排序+选择排序)

文章目录排序与搜索排序算法的稳定性冒泡排序冒泡排序的分析时间复杂度选择排序选择排序分析时间复杂度排序与搜索排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。排序算法的稳定性稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。当相等的元素是无法分辨的,比如像是整数,稳定性并不是一个问题。然而,假设以下的数对将要

2021-02-20 20:20:49 196

原创 python学习笔记_第29天(栈+列队)

文章目录栈栈结构实现栈的操作栈操作具体实现队列队列的实现列队的操作列队操作具体实现双端队列双端列队的操作双端列队操作具体实现栈栈结构实现栈可以用顺序表实现,也可以用链表实现。栈的操作操作说明Stack()创建一个新的空栈push(item)添加一个新的元素item到栈顶pop()弹出栈顶元素peek()返回栈顶元素is_empty()判断栈是否为空size()返回栈的元素个数栈操作具体实现测试队列队列(queue)是

2021-02-19 23:15:35 128

原创 python学习笔记_第28天(线性表_链表2)

文章目录线性表链表双向链表双向链表的操作双向链表操作具体实现线性表链表双向链表前驱结点+数据+后继结点一种更复杂的链表是“双向链表”或“双面链表”。每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。双向链表的操作操作说明is_empty()链表是否为空length()链表长度travel()遍历链表add(item)链表头部添加append(item)链表

2021-02-18 23:17:55 85

原创 python学习笔记_第27天(线性表_链表1)

文章目录线性表链表线性表链表链表,将元素存放在通过链接构造起来的一系列存储块中。

2021-02-17 17:37:56 87 2

原创 python学习笔记_第26天(线性表_顺序表)

文章目录线性表顺序表顺序表的基本形式顺序表的结构与实现顺序表的结构顺序表的两种基本实现方式元素存储区扩充元素存储区替换顺序表的操作增加元素删除元素Python中的顺序表list的基本实现技术链表线性表数据类型决定了数据在计算机内存中的占用空间,和取数时计算机的读取规则(如连续的4个字节存储的是一个整数还是4个字符)。一个普通整形占4个字节,一个字节8位;一个字符占1个字节,即8位;地址占用4个字节。将一组数据元素作为整体管理和使用,最简单的解决方案便是将这样一组元素看成一个序列,用元素在序列里的位置和

2021-02-15 22:29:11 339 1

原创 python学习笔记_第26天(数据结构与算法)

文章目录常见时间复杂度Python内置类型性能分析list的操作测试数据结构算法与数据结构的区别抽象数据类型(Abstract Data Type)常见时间复杂度执行次数函数举例阶非正式术语12O(1)常数阶2n+3O(n)线性阶3n2+2n+1O(n2)平方阶5log2n+20O(logn)对数阶2n+3nlog2n+19O(nlogn)nlogn阶6n3+2n2+3n+4O(n3)立方阶2nO(2n)指数阶p

2021-02-15 18:41:13 235 1

原创 python学习笔记_第25天(数据结构与算法)

算法的引入练习:如果 a+b+c=1000,且 a ^2 +b ^2=c ^2(a,b,c 为自然数),如何求出所有a、b、c可能的组合?# 循环嵌套循环import timestart_time1 = time.time()for a in range(0, 1001): for b in range(0, 1001): for c in range(0, 1001): if a ** 2 + b ** 2 == c ** 2 and a +

2021-02-14 22:31:01 93 1

原创 python学习笔记_第24天(模块)

包package 的使用

2021-02-14 08:44:02 98 1

原创 python学习笔记_第23天(模块)

文章目录模块化(module)程序设计理念模块和包概念的进化史标准库模块+模块化编程模块化编程的流程模块化(module)程序设计理念模块和包概念的进化史“量变引起质变”本质上理解,随着数量的增加,管理方式会发生本质的变化;旧的管理方式完全不适合,必须采用新的管理方式。程序越来越复杂,语句多了,会将实现同一个功能的语句封装到函数中,统一管理和调用,于是函数诞生了。程序更加复杂,函数和变量多了,“物以类聚”将同一类型对象的“数据和行为”,也就是“变量和函数”,放到一起统一管理和调用,于是“类和对象

2021-02-09 23:35:50 162 1

原创 python学习笔记_第22天(文件操作--IO 技术)

shutil 模块(拷贝和压缩)shutil 模块是python 标准库中提供的,主要用来做文件和文件夹的拷贝、移动、删除等;还可以做文件和文件夹的压缩、解压缩操作。os 模块提供了对目录或文件的一般操作。shutil 模块作为补充,提供了移动、复制、压缩、解压等操作,这些os 模块都没有提供。shutil 模块 – 选择拷贝import shutil# copy 文件shutil.copyfile("a.txt", "a_copy.txt")# copy 目录,当拷贝的目录已存在时会报错(

2021-02-09 00:19:21 250 1

原创 python学习笔记_第21天(文件操作--IO 技术)

使用pickle 序列化Python 中,一切皆对象,对象本质上就是一个“存储数据的内存块”。有时候,我们需要将“内存块的数据”保存到硬盘上,或者通过网络传输到其他的计算机上。这时候,就需要“对象的序列化和反序列化”。序列化指的是:将对象转化成“串行化”数据形式,存储到硬盘或通过网络传输到其他地方。反序列化是指相反的过程,将读取到的“串行化数据”转化成对象。pickle.dump(obj, file) # obj 就是要被序列化的对象,file 指的是存储的文件pickle.load(file)

2021-02-06 22:46:47 1045 2

原创 python学习笔记_第20天(文件操作--IO 技术)

文本文件的读取文件的读取一般使用如下三个方法:read([size])从文件中读取size 个字符,并作为结果返回。如果没有size参数,则读取整个文件。读取到文件末尾,会返回空字符串。readline()读取一行内容作为结果返回。读取到文件末尾,会返回空字符串。readlines()文本文件中,每一行作为一个字符串存入列表中,返回该列表# 读取一个文件前3个字符with open(r'c.txt', 'r', encoding='gbk') as f: str = f.rea

2021-02-05 23:44:20 106

原创 python学习笔记_第19天(文件操作--IO 技术)

文件操作(IO 技术)文本文件和二进制文件按文件中数据组织形式,我们把文件分为文本文件和二进制文件两大类。文本文件文本文件存储的是普通“字符”文本,python 默认为unicode 字符集(两个字节表示一个字符,最多可以表示:65536 个),可以使用记事本程序打开。但是,像word 软件编辑的文档不是文本文件。二进制文件二进制文件把数据内容用“字节”进行存储,无法用记事本打开。必须使用专用的软件解码。常见的有:MP4 视频文件、MP3 音频文件、JPG 图片、doc 文档等等。文件操作

2021-02-04 23:19:21 2717

原创 python学习笔记_第18天(异常和错误)

常见异常汇总异常名称说明ArithmeticError所有数值计算错误的基类AssertionError断言语句失败AttributeError对象没有这个属性BaseException所有异常的基类DeprecationWarning关于被弃用的特征的警告EnvironmentError操作系统错误的基类EOFError没有内建输入,到达EOF 标记Exception常规错误的基类FloatingPointError浮

2021-02-03 23:52:30 201

原创 python学习笔记_第17天(异常和错误)

异常机制没有异常机制的两个坏处:逻辑代码和错误处理代码放一起,结构混乱程序员本身需要考虑的例外情况较复杂,对程序员本身要求较高在没有异常机制的情况下的伪代码:#将d:/a.txt 拷贝到e:盘if "d:/a.txt"这个文件存在: if e 盘的空间大于a.txt 文件长度: if 文件复制一半IO 流断掉: 停止copy,输出:IO 流出问题! else: copyFile("d:/a.txt","e:/a.txt") # 核心功能代码 else: pr

2021-02-02 22:59:57 126

原创 python学习笔记_第16天(面向对象进阶)

特殊方法和运算符重载Python 的运算符实际上是通过调用对象的特殊方法实现的。a, b = 20, 30c = a + bd = a.__add__(b) # "+"在内存里的本质是特殊方法__add__print("c=", c)print("d=", d)当重写特殊方法时,即实现了“运算符的重载”。class Person: def __init__(self, name): self.name = name def __add__(self, o

2021-02-01 23:08:55 225

原创 python学习笔记_第15天(面向对象进阶)

面向对象三大特征介绍Python 是面向对象的语言,也支持面向对象编程的三大特性:封装(隐藏)、继承、多态。封装(隐藏)隐藏对象的属性和实现细节,只对外提供必要的方法。Python通过“私有属性、私有方法”的方式,实现“封装”。因为Python追求简洁的语法,所以没有严格的语法级别的“访问控制符”。私有属性、私有方法也可以通过【_类名__私有属性(方法)名】来外部调用,封装更多的是依靠程序员自觉实现。继承继承可以让子类具有父类的特性,提高了代码的重用性。从设计上是一种增量进化,原有父类设计不

2021-02-01 21:40:15 316 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除