Python
Aaron2333
Buck up muggles!
展开
-
[Python]哈夫曼编码
生成树from heapq import heapify, heappush, heappopfrom itertools import count"""https://www.cnblogs.com/xuchunlin/p/7247346.html"""def huffman(nodes, frequent): num = count() trees = list(zip(frequent, num, nodes)) # num ensures valid orde.原创 2020-06-28 08:30:33 · 397 阅读 · 0 评论 -
[Python]贪心算法-Prim-和-Kruskal实现-最小生成树
目标在连通网的所有生成树中,找到所有边的代价和最小的生成树,简称最小生成树问题.(简要的来说,就是在AOV网中找出串联n个顶点代价总和最小的边集)下面记录最小生成树的两种算法,Prim和KruskalPrim算法思路从任意一个顶点开始,每次选择与当前顶点最近的一个顶点,并将两点之间的边加入到树中被选中的点构成一个集合,剩下的点是候选集每次从已选择的点的集合中,查找花费最小的点,加入进来同时在候选集中删去,重复3和4,知道候选集中没有元素。Prim算法代码def cmp(key1,原创 2020-06-27 12:32:35 · 1109 阅读 · 0 评论 -
[Python]贪心算法-Dijkstra-实现
目标带权重的有向图上单源最短路径问题。且权重都为非负值。如果采用的实现方法合适,Dijkstra运行时间要低于Bellman-Ford算法。思路选择一个节点开始蔓延计算自身到连接它的一级节点之间的距离, 全部作为候选集在候选集中,找到距离最短的,对应的那个节点删除这个节点在候选集中的信息继续蔓延,还是找最小的距离直到候选集为空最小距离的判断标准 dist[j] = min(dist[j], dist[i] + weight[i][j])完善版本import heapqimpor原创 2020-06-26 08:48:49 · 398 阅读 · 0 评论 -
[python3]稳定匹配算法实现和优化
问题的描述在这里就不赘述了,你能搜到这篇文章,那肯定知道只算法的背景是啥解决思路男生向还未拒绝其的女生中选出优先级最高的,并向其求婚女生如果没有已经被优先级更高的男生求婚,则答应(女生以后可以反悔)。 如果反之,则拒绝对此步骤进行loop,直到没有求婚发生这篇文章,讲一个自己实现的GS算法的版本看过一些博文,比如这篇文章 https://blog.csdn.net/lonfee88/article/details/6678190文章使用的代码上面那篇文章使用的代码是这样的,很清晰。d原创 2020-06-24 14:22:16 · 1382 阅读 · 0 评论 -
图像分类算法为什么有那么多?
图像分类算法为什么有那么多?AlexNet, VGGNet, MobileNet, ResNet, Inception v1 v2 v3 v4… blablabla为什么针对图像的分类算法有这么多,什么时候该用什么。 我好晕啊, 我觉得可能不止我一个人晕吧。那就接着看吧。这些算法的来源首先事物都是有发展的过程的,图像分类算法也不例外,上面提到的和你听到的各种图像算法都是各位大佬为解决某一领域问题,在普通卷积思想的基础上发展出来的。 别慌,都是人想出来,不会很难。为什么要有这么多不同的网络结构不原创 2020-06-15 03:10:27 · 1339 阅读 · 2 评论 -
算法的时间复杂度到底怎么算?
算法的时间复杂度到底怎么算?引言假设计算机运行一行简单语句算作一次运算。def func1(num): print("Hello, World!\n") # 需要执行 1 次 return 0 # 需要执行 1 次那么上面这个方法需要执行 2 次运算def func2(num): for i in range(num): # 需要执行 (n + 1) 次 print("Hello原创 2020-06-14 02:54:31 · 4086 阅读 · 0 评论 -
[Python]7种基础排序算法-Python实现
Basic 7 Algorithms in PythonBubble Sort(冒泡排序)Main Idea: use two loops to iterate data array, find the maximum, and throw it to the end.(两次循环,每次选大的放在后面,重复,直到没有数据)Feature: Stable O(n^2) def bubble_sort(arr): for i in range(len(arr)):原创 2020-06-13 08:20:36 · 219 阅读 · 0 评论 -
[Python3]星号*的打开方式
python中,* 号除了用来做数量乘法,还有其他的用处。结论概括的来说,就是对修饰的变量进行拆分, 对修饰的形式参数进行参数聚集。单*号,将被修饰的变量按元素方式拆分, 对修饰的形式参数进行参数聚集。双**号,将被修饰的变量按键值对进行拆分, 对修饰的形式参数进行参数聚集。修饰实例变量时作用: 讲被修饰的实例变量或者可迭代对象进行拆分def func3(a, b, c): print("param a is {}, param b is {}, param c is {}"原创 2020-06-05 14:31:10 · 590 阅读 · 0 评论 -
[Pyspark]RDD常用方法总结
aggregate(zeroValue, seqOp, combOp)入参:zeroValue表示一组初值 TupleseqOp表示在各个分区partition中进行 什么样的聚合操作,支持不同类型的聚合 FunccombOp表示将不同分区partition聚合后的结果再进行聚合,只能进行同类型聚合 Func返回:聚合后的结果,不是RDD,是一个python对象下面是对一组数进行累加,并计算数据的长度的例子 # sum, sum1, sum2 的数据类型跟zeroV原创 2020-06-05 14:30:30 · 1372 阅读 · 0 评论 -
[Python3]为什么map比for循环快
实验结论如果需要在循环结束后获得结果,推荐列表解析;如果不需要结果,直接使用for循环, 列表解析可以备选;除了追求代码优雅和特定规定情境,不建议使用map如果不需要返回结果这里有三个process, 每个任务将通过增加循环提高时间复杂度 def process1(val, type=None): chr(val % 123) def process2(val, type): if type == "list": [process1(_) for _原创 2020-06-05 14:29:27 · 2194 阅读 · 1 评论 -
[Python3]踩坑实录-优化技巧1
选择合适的数据结构考虑不同的应用场景,应选择不同的数据结构比如在查找多于插入的场景中,考虑字典Dict是不是更适合;因为在Python3中, 字典Dict 通过hash把key映射到hash table的不同位置(或者说不同的bucket中),因此查找操作的复杂度为 O(1);而列表list对象实际是个数组,完成相同的查找需要遍历整个list,其复杂度为 O(n),因此对成员的查找访问等操作字典要比 list 更快。集合Set 跟字典Dict比较类似,查找操作的复杂度为 O(1..原创 2020-06-05 14:28:15 · 165 阅读 · 0 评论 -
Python 集合总结
list [value1, value2, …]获取元素 list[index]追加 .append(xxx) .insert(index, xxx) 删除 .pop() .pop(index)特点:有序, 元素值value可修改,元素值value可重复tuple (value1, value2, …)获取元素 tuple[index]获取长度len(tuple)特点:有序...原创 2019-07-08 01:52:55 · 220 阅读 · 0 评论 -
Django脚手架
建立步骤A 是根目录在A 下使用命令’virtualenv env’ 创建env 文件夹进入env\Script, 运行active.bat 启动虚拟环境安装Djangopip install Django安装Django REST Framework (https://www.django-rest-framework.org/#installation)pip install ...原创 2019-07-08 01:12:15 · 1197 阅读 · 0 评论 -
Python抓取数据乱码b'\x1f\x8b\x08\x00\x00\x00\x00\x0....[UnicodeDecodeError]
Python抓取数据乱码b'\x1f\x8b\x08\x00\x00\x00\x00\x0....[UnicodeDecodeError]引入gzipfrom urllib import requestimport gzip r = request.urlopen(url) content = r.read() # 错误! --> UnicodeDe...原创 2019-04-18 13:34:15 · 9915 阅读 · 5 评论 -
Django2 media文件访问配置
项目目录如图所示;要在HTML文件中访问media文件夹下的图片等静态文件时,需要如下配置。配置setting.pyMEDIA_URL = '/media/'MEDIA_ROOT = os.path.join(BASE_DIR, "media")配置urls.pyfrom django.urls import re_pathfrom django.views.static ...原创 2019-05-15 11:36:43 · 1154 阅读 · 1 评论 -
Django2框架上使用xadmin2
去GitHub下载xadmin的源码包https://github.com/sshwsfc/xadmin/tree/django2 (ZIP格式)zip文件下载好了之后,进虚拟环境病切换到下载好的zip文件的目录下,然后执行pip install xadmin-django2.zip将zip压缩包(xadmin-django2.zip)中的xadmin文件夹解压出来,并复制到...原创 2019-05-07 22:03:00 · 527 阅读 · 0 评论 -
Django2 加载静态文件以及页内跳转(标签式)
Django 标签式加载静态文件>seeting.pySTATIC_URL = '/static/'STATICFILES_DIRS = ( os.path.join(BASE_DIR, "static"),)>xxx.html{% load staticfiles %}{% static 'css/reset.css' %}Django 页内跳转>...原创 2019-05-22 10:31:49 · 647 阅读 · 0 评论 -
Python遍历技巧
class UserCourse(models.Model): # 用户选择的课程 user = models.ForeignKey(UserProfile, verbose_name=u"UserObject", on_delete=models.CASCADE) course = models.ForeignKey(Course, verbose_name=u"Course"...原创 2019-07-08 01:57:45 · 160 阅读 · 0 评论 -
Django2.0 404/500页面配置
app的view下创建一个方法def page_not_found(request, exception=None): from django.shortcuts import render_to_response response = render_to_response('404.html', {}) response.status_code = 404 ...原创 2019-06-02 11:33:08 · 309 阅读 · 0 评论 -
RegexTips
\s 空白字符 \S 非空白字符 一起使用匹配所有字符 Space\w 单词字符 \W 非单词字符 一起使用匹配所有字符 Word\d 数字字符 \D 非数字字符 一起使用匹配所有字符 Number. 匹配出换行符\n之外其他所有的字符* 匹配0次或无限多次? 非贪婪模式 默认开启贪婪模式 (非贪婪模式,第一次匹配就返回)() 获取匹配内容 (不包括标签头和结尾)...原创 2019-07-08 01:14:36 · 74 阅读 · 0 评论