python算法

python 类的使用原则

你离开我真会死。 提交于 2020-01-07 20:34:14
Class 的继承分类 单继承链/无重叠的继承链/有重叠的继承链 class 的继承算法 深度优先算法 :        1. 把根节点压入栈中        2.每次从栈中弹出一个元素 ,搜索所有在它下一级的元素 ,将这些元素压入栈中 ,        3 重复 1和 2 C3算法: 公式: L(object)=[object] L(子类(父类1,.父类2))=[子类]+ merge(L(父类1,.父类2),[父类1,父类2]) merge算法 1 第一个列表的第一个元素是后续列表的第一个元素,或者后续列表中没有再次出现,则将这个元素合并到最终的解析列表中,并从当前操作的所有列表中删除 2. 如果不符合,则跳过此元素,查找下一个列表的第一个元素,重复1的判断规则 3. 如果最终无法把所有元素归并到解析列表,则报错 C3算法例子: import inspect class D: pass # L(D(object))= [D] + merge(L(object),[object]) # = [D] +merge(L[object],[object]) # = [D,object] + merge(L[], []) # = [D, object] class B(D): pass #L(B(object))= [B]+ merge(L(D),[D]) # = [B]+ merge(

Python机器学习书-奠基之路

安稳与你 提交于 2020-01-07 08:42:49
来自百度百科: https://baike.baidu.com/item/Python%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/20499731?fr=aladdin 该书涵盖内容全面是一本很好的入门级图书。 《Python机器学习》是2017年 机械工业出版社 出版的图书,作者是塞巴斯蒂安·拉施卡(Sebastian Raschka) 作者:[美] 塞巴斯蒂安·拉施卡(Sebastian Raschka) 著 ISBN(书号):978-7-111-55880-4 丛书名:数据科学与工程技术丛书 出版日期:2017-03 版次:1/1 开本:16 定价:¥79.00 内容简介 本书将机器学习背后的基本理论与应用实践联系起来,通过这种方式让读者聚焦于如何正确地提出问题、解决问题。书中讲解了如何使用Python的核心元素以及强大的机器学习库,同时还展示了如何正确使用一系列统计模型。不管你是学习数据科学的初学者,还是想进一步拓展对数据科学领域的认知,本书都是一个重要且不可错过的资源,它能帮助你了解如何使用Python解决数据中的关键问题。 使用Python在深度学习、数据转换与数据可视化领域功能强大的开源库 学习关于提高机器学习系统与算法效率以及优化方面的有效策略和最佳实践 提出(并解决)数据方面的棘手问题,在大规模数据集基础上构建稳定的统计模型

Python十大装B语法

二次信任 提交于 2020-01-07 08:41:10
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才是原配吗?No,你可能不知道,else 是个脚踩两只船的家伙,for 和 else 也是一对,而且是合法的。十大装B语法,for-else 绝对算得上南无湾!不信,请看: >>> for i in [1,2,3,4]: print(i) else: print(i, '我是else') 1 2 3 4 4 我是else 如果在 for 和 else 之间(循环体内)有第三者 if 插足,也不会影响 for 和 else 的关系。因为 for 的级别比 if 高,else 又是一个攀附权贵的家伙,根本不在乎是否有 if,以及是否执行了满足 if 条件的语句。else 的眼里只有 for,只要 for 顺利执行完毕,else 就会屁颠儿屁颠儿地跑一遍: >>> for i in [1,2,3,4]: if i > 2: print(i) else: print(i, '我是else') 3 4

使用Python实现一个简单的LRUCache

这一生的挚爱 提交于 2020-01-07 07:14:24
简介 我们都知道,Redis会使用“淘汰策略”来进行热点数据的管理,其中大部分场景下都会使用LRU(Least Recently used)算法,本文从一个简单的使用dict缓存斐波那契数列的值为例引出LRU的使用场景并使用Python实现一个简单的LRUCache。 使用缓存减少计算或者主数据库的开销 在实际的业务场景中,我们常常会使用缓存来减少程序的计算或者用户频繁访问主数据库的开销。比如说,我这里有一个接口函数fib,用户使用某一个天数来请求数据时,接口将计算结果返回给用户: def fib(n): if n <= 2: return 1 return fib(n-1) + fib(n-2) 为了减少程序计算的开销,我们可以使用一个字典去“缓存”对应的结果,也就是说, 我们可以提前计算好用户请求的天数与对应结果的对应信息,如果用户请求的天数在“缓存”中的话我们可以直接将缓存中的结果返回给用户,这样就有效的减少了一次程序的开销! 装饰器方式实现“缓存效果” # 字典中有的会从这里取值而不用计算,减少计算开销 dic = {1:1,2:1,3:2} def wrapper(func): global dic def inner(n): if n in dic: return dic[n] res = func(n) dic[n] = res return res return

这26个为什么,让初学者理解Python更简单!

柔情痞子 提交于 2020-01-07 04:13:50
为什么Python使用缩进来分组语句? 为什么简单的算术运算得到奇怪的结果? 为什么浮点计算不准确? 为什么Python字符串是不可变的? 为什么必须在方法定义和调用中显式使用“self”? 为什么不能在表达式中赋值? 为什么Python对某些功能(例如list.index())使用方法来实现,而其他功能(例如len(List))使用函数实现? 为什么 join()是一个字符串方法而不是列表或元组方法? 异常有多快? 为什么Python中没有switch或case语句? 难道不能在解释器中模拟线程,而非得依赖特定于操作系统的线程实现吗? 为什么lambda表达式不能包含语句? 可以将Python编译为机器代码,C或其他语言吗? Python如何管理内存? 为什么CPython不使用更传统的垃圾回收方案? CPython退出时为什么不释放所有内存? 为什么有单独的元组和列表数据类型? 列表是如何在CPython中实现的? 字典是如何在CPython中实现的? 为什么字典key必须是不可变的? 为什么 list.sort() 没有返回排序列表? 如何在Python中指定和实施接口规范? 为什么没有goto? 为什么原始字符串(r-strings)不能以反斜杠结尾? 为什么Python没有属性赋值的“with”语句? 为什么 if/while/def/class语句需要冒号?

Python实现3D扫雷算法

情到浓时终转凉″ 提交于 2020-01-06 23:11:32
from random import randint h = [ [ [ " " ] * 5 for x in range ( 5 ) ] for i in range ( 5 ) ] for x in range ( 25 ) : h [ randint ( 0 , 4 ) ] [ randint ( 0 , 4 ) ] [ randint ( 0 , 4 ) ] = "[M]" def around ( a , b , c ) : k = [ [ a - 1 , b - 1 , c - 1 ] , [ a - 1 , b - 1 , c ] , [ a - 1 , b - 1 , c + 1 ] , [ a - 1 , b , c - 1 ] , [ a - 1 , b , c ] , [ a - 1 , b , c + 1 ] , [ a - 1 , b + 1 , c - 1 ] , [ a - 1 , b + 1 , c ] , [ a - 1 , b + 1 , c + 1 ] , [ a , b - 1 , c - 1 ] , [ a , b - 1 , c ] , [ a , b - 1 , c + 1 ] , [ a , b , c - 1 ] , [ a , b , c + 1 ] , [ a , b + 1 , c - 1 ] , [ a , b + 1 ,

python 模型效果的呈现结果

情到浓时终转凉″ 提交于 2020-01-06 21:20:46
一.二分类的正确率 or 预测正确的样本个数 from sklearn import metrics y_pred = my_model . predict ( x_test ) #####my_model是经过x_train和y_train以及模型算法进行参数调优的训练模型结果,y_pred是测试数据的预测值 metrics . accuracy_score ( y_test , y_pred ) ##模型预测正确率;metrics.accuracy_score(y_test,y_pred,normalize=True,sample_weight=None)normalize=True返回的结果是预测正确率,normalize=False返回的是预测样本的正确样本数,sample_weight每个样本的权重,默认是None即每个样本的权重是1,sample_weight的长度必须是和y_test的长度一样 来源: CSDN 作者: fight_for_ours 链接: https://blog.csdn.net/qq_40577144/article/details/103863898

使用@property与getter和setter

自闭症网瘾萝莉.ら 提交于 2020-01-06 17:14:29
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 这是一个纯Python特定的设计问题: class MyClass(object): ... def get_my_attr(self): ... def set_my_attr(self, value): ... 和 class MyClass(object): ... @property def my_attr(self): ... @my_attr.setter def my_attr(self, value): ... Python让我们可以用任何一种方式来做。 如果要设计Python程序,将使用哪种方法,为什么? #1楼 在大多数情况下,我都不想使用两者。 属性的问题在于它们使类不那么透明。 特别是,如果您要向设置员提出例外情况,这将是一个问题。 例如,如果您具有Account.email属性: class Account(object): @property def email(self): return self._email @email.setter def email(self, value): if '@' not in value: raise ValueError('Invalid email address.') self._email = value

Python-机器学习小项目

守給你的承諾、 提交于 2020-01-06 10:05:43
原文地址: https://segmentfault.com/a/1190000017067753?utm_source=tag-newest 学习机器学习相关技术的最好方式就是先自己设计和完成一些小项目。 Python 是一种非常流行和强大的解释性编程语言。不像 R 语言,Python 是个很完整的语言和平台,你既可以用来做研发,也可以用来开发产品体系。 而且,Python 还有很多模块和程序库供我们选择,从而针对一个任务能有很多个解决方案。怎么样,听起来还是很厉害的吧? 如果用 Python 执行机器学习,刚开始时最好方式就是先完成一个小项目,为什么这么说呢? 因为这会让你先懂得如何安装和启动 Python 解释器(这是最起码的要求吧)。 因为这会让你从总体上知道怎样一步步完成一个项目。 因为这会增加你的信心,或许能让你开始创建自己的小项目。 新手很需要一个完整的小项目练手 教材书还有课程这些东西还是比较烦人的,虽然给你讲解的很细,讲的也很多,但都太零碎,你单靠这些很难领会这些知识点如何综合运用到一起。 将机器学习运用到自己的数据集上时,就算是开始一个项目了。 一个机器学习项目可能并不是直线式的,但是很多步骤都是耳熟能详: 定义问题。 准备数据。 评估算法。 优化结果。 呈现结果。 真正掌握一个新平台新工具的最好方法,就是用它一步步完成一个完整的机器学习项目

Python注释

a 夏天 提交于 2020-01-06 00:06:22
注释用于说明代码实现的功能、采用的算法、代码的编写者以及创建和修改的时间等信息。 注释是代码的一部分,注释起到了对代码补充说明的作用。 Python注释 Python单行注释以#开头,单行注释可以作为单独的一行放在被注释的代码行之上,也可以放在语句或者表达式之后。 #Give you a chance to let you know me print("Give you a chance to let you know me") say_what = "this is a demo" #at the end of a line Python 中多行注释使用三个单引号(''')或三个双引号("""),而实际上这个是多行字符串的书写方式,并不是Python本身提倡的多行注释。 Python注释参见: https://docs.python.org/3/reference/lexical_analysis.html#comments # 文件名:test.py ''' 这是多行注释,使用单引号。 这是多行注释,使用单引号。 ''' """ 这是多行注释,使用双引号。 这是多行注释,使用双引号。 """ Python中还有一些特殊注释以完成一些特别的功能,例如:编码注释、平台注释。 编码注释: # -*- coding: UTF-8 -*- print ("你好,Python");