python算法

Python学习摘录(自用)

眉间皱痕 提交于 2020-03-11 14:54:20
Python 简单 :Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。 易学 :Python极其容易上手,因为Python有极其简单的说明文档 。 速度快 :Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快。 免费、开源 :Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。 高层语言 :用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。 可移植性 :由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux开发的android平台。 解释性

python设计模式

懵懂的女人 提交于 2020-03-10 19:43:38
转载自品略图书馆: http://www.pinlue.com/article/2020/03/1009/2210006503225.html 1.创建型模式 单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 的类来读取配置文件的信息。如果在程序运行期间,有很多地方都需要使用配置文件的内容,也就是说,很多地方都需要创建 AppConfig 对象的实例,这就导致系统中存在多个 AppConfig 的实例对象,而这样 2.当你想要创建一个可扩展的关联在创建类与支持创建对象的类之间。 一个例子更能很好的理解以上的内容: 我们有一个基类Person ,包涵获取名字,性别的方法 。有两个子类male 和female,可以打招呼。还有一个工厂类。 工厂类有一个方法名getPerson有两个输入参数,名字和 会严重浪费内存资源,尤其是在配置文件内容很多的情况下。事实上,类似 AppConfig 这样的类,我们希望在程序运行期间只存在一个实例对象 class Singleton(object): def __init__(self): pass def __new__

Python--windows下安装python

匆匆过客 提交于 2020-03-10 14:03:04
个人博客导航页(点击 右侧 链接 即可打开个人博客): 大牛带你入门技术栈 最近有爬虫方面的需求,就学习下python。windows安装python步骤如下 1.下载python python官网下载路径: https://www.python.org/downloads/release/python-372/ 由图可知,我下载的是3.7.2版本。 2.安装python python的安装非常简单,双击exe文件,选中 Add Python 3.7 to PATH ,后续一直点击下去就行了。 3.使用python 在windows控制台中输入 python,详见如下图 出现如上界面,说明python安装成功。同时进入了python交互式环境中,此时可以输入python代码,回车即可得到执行结果。输入exit()并回车,即可退出python交互环境。 4.python解释器 当我们编写python代码时,得到的是一个包含python代码且以 .py 为扩展名的文本文件。要运行python代码,就必须要python解释器去执行.py文件。常用的python解释器是CPython,当我们从官网下载python之后,解释器也一并自带下载了,所以CPython也是官方指定解释器。 5.第一个python程序 在python交互式环境中输入python代码是练习使用的

Python一键转Jar包,Java调用Python新姿势!

末鹿安然 提交于 2020-03-10 09:49:45
粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我^_^),今天这篇文章换换口味,正经的来写写技术文。言归正传,咱们开始吧! 本文结构: 需求背景 进击的Python Java和Python 给Python加速 寻找方向 Jython? Python->Native代码 整体思路 实际动手 关键问题 import的问题 Python GIL问题 测试效果 总结 需求背景 进击的Python 随着人工智能的兴起,Python这门曾经小众的编程语言可谓是焕发了第二春。 以tensorflow、pytorch等为主的机器学习/深度学习的开发框架大行其道,助推了python这门曾经以爬虫见长(python粉别生气)的编程语言在TIOBE编程语言排行榜上一路披荆斩棘,坐上前三甲的宝座,仅次于Java和C,将C++、JavaScript、PHP、C#等一众劲敌斩落马下。 当然,轩辕君向来是不提倡编程语言之间的竞争对比,每一门语言都有自己的优势和劣势,有自己应用的领域。 另一方面,TIOBE统计的数据也不能代表国内的实际情况,上面的例子只是侧面反映了Python这门语言如今的流行程度。 Java 还是 Python 说回咱们的需求上来,如今在不少的企业中,同时存在Python研发团队和Java研发团队,Python团队负责人工智能算法开发,而Java团队负责算法工程化

简单桶排序算法-python实现

怎甘沉沦 提交于 2020-03-10 05:11:03
1 #-*- coding: UTF-8 -*- 2 import numpy as np 3 4 def BucketSort(a, n): 5 barrel = np.zeros((1, n), dtype = 'int32') 6 for i in xrange(0,a.size): 7 barrel[0][a[i]] += 1 8 k = 0 9 for i in xrange(0,n): 10 if barrel[0][i] != 0: 11 for j in xrange(0,barrel[0][i]): 12 a[k] = i 13 k += 1 14 15 16 if __name__ == '__main__': 17 a = np.random.randint(0, 100, size = 10) 18 print "Before sorting..." 19 print "---------------------------------------------------------------" 20 print a 21 print "---------------------------------------------------------------" 22 BucketSort(a, 100) 23 print "After sorting.

Python--windows下安装python

荒凉一梦 提交于 2020-03-10 04:35:47
个人博客导航页(点击 右侧 链接 即可打开个人博客): 大牛带你入门技术栈 最近有爬虫方面的需求,就学习下python。windows安装python步骤如下 1.下载python python官网下载路径: https://www.python.org/downloads/release/python-372/ 由图可知,我下载的是3.7.2版本。 2.安装python python的安装非常简单,双击exe文件,选中 Add Python 3.7 to PATH ,后续一直点击下去就行了。 3.使用python 在windows控制台中输入 python,详见如下图 出现如上界面,说明python安装成功。同时进入了python交互式环境中,此时可以输入python代码,回车即可得到执行结果。输入exit()并回车,即可退出python交互环境。 4.python解释器 当我们编写python代码时,得到的是一个包含python代码且以 .py 为扩展名的文本文件。要运行python代码,就必须要python解释器去执行.py文件。常用的python解释器是CPython,当我们从官网下载python之后,解释器也一并自带下载了,所以CPython也是官方指定解释器。 5.第一个python程序 在python交互式环境中输入python代码是练习使用的

[转]程序员必读书单(转)

拈花ヽ惹草 提交于 2020-03-09 16:39:14
作者: Lucida 微博: @peng_gong 豆瓣: @figure9 原文链接: http://lucida.me/blog/developer-reading-list/ 关于 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读。旨在成为最好最全面的程序员必读书单。 前言 Reading makes a full man; conference a ready man; and writing an exact man. Francis Bacon 优秀的程序员应该具备两方面能力: 良好的 程序设计 能力: 掌握常用的数据结构和算法(例如链表,栈,堆,队列,排序和散列); 理解计算机科学的核心概念(例如计算机系统结构、操作系统、编译原理和计算机网络); 熟悉至少两门以上编程语言(例如C++,Java,C#,和Python); 专业的 软件开发 素养: 具备良好的编程实践,能够编写可测试(Testable),可扩展(Extensible),可维护(Maintainable)的代码; 把握客户需求,按时交付客户所需要的软件产品; 理解现代软件开发过程中的核心概念(例如面向对象程序设计,测试驱动开发,持续集成,和持续交付等等)。 和其它能力一样, 程序设计 能力和 软件开发 素养源自项目经验和书本知识

centos7安装HFE算法

北城余情 提交于 2020-03-09 15:00:37
参考文章: https://fracpete.github.io/python-weka-wrapper/install.html 需要将JDK写到环境变量里面去 安装步骤如网站所示。 貌似还需要更新一下pip和setuptools 除此以外: 在javabridge安装时报错,需要在之前再安装一个Cython。 再安装python-weka-wrapper即可。 来源: CSDN 作者: red_west 链接: https://blog.csdn.net/red_west/article/details/104750170

《Fluent Python》- 03 字典和集合

帅比萌擦擦* 提交于 2020-03-09 11:54:23
字典这个数据结构活跃在所以Python程序背后,即便你没有直接用到它 泛映射类型 非抽象映射类型通常是不会继承抽象基类的。它们会直接对dict或者是collection.UserDict进行扩展。而抽象基类通常的作用是形式化的文档,它们还可以跟isinstance一起被用来判断某个数据是不是广义上的映射类型。 这里用isintance而不是type来检查,是因为这个参数有可能不是dict。 my_dict = {} print(isinstance(my_dict, abc.Mapping)) # True 标准库里的所有映射都是利用dict来实现的,英雌有个限制,只有可散列的数据类型才能用作这些映射里的键。 关于可散列:如果一个对象是可散列的,那么在这个对象的生命周期中,它的散列值是不变的,而且这个对象需要实现__hash__()方法。另外可散列对象还要有__eq__()方法,这样才能和其他键做比较。 关于Python中“Python里所有的不可变类型都是可散列的”这句话其实是不太准确的,比方说元祖,它本身是不可变的,但是内部元素却可能是可变的。 字典推导 自Python2.7以来,列表推导和生成器表达式的概念就移植到了字典上,从而有了字典推导。字典推导可以从任何以建值对作为元素的可迭代对象中构建出字典。 DIAL_CODES = [(86, 'China'), (91,

Python图形库[关闭]

社会主义新天地 提交于 2020-03-09 11:27:18
我正在编写一个python应用程序,它将大量使用图形数据结构。 没有什么可怕的复杂,但我认为某种图形/图形算法库会帮助我。 我用谷歌搜索过,但我没有发现任何特别是跳出来的东西。 有人有什么好建议吗? #1楼 我的第二个zweiterlinde建议使用python-graph。 我已经将它作为我正在研究的基于图形的研究项目的基础。 该库编写良好,稳定,界面友好。 作者也迅速回应询问和报告。 #2楼 我想插入我自己的图形python库: graph-tool 。 它非常快,因为它是使用Boost Graph Library在C ++中实现的,它包含许多算法和大量文档。 #3楼 看看 这个在python中实现图形的页面 。 您还可以查看sourceforge上的 pygraphlib 。 #4楼 你看过 python-graph了 吗? 我自己没有使用它,但项目页面看起来很有希望。 #5楼 使用 Boost图库 - Python绑定 。 来源: oschina 链接: https://my.oschina.net/stackoom/blog/3190372