python算法

零基础学习Python数据分析

走远了吗. 提交于 2019-12-25 10:44:14
网上虽然有很多Python学习的教程,但是大多是围绕Python网页开发等展开。数据分析所需要的Python技能和网页开发等差别非常大,本人就是浪费了很多时间来看这些博客、书籍。所以就有了本文,希望能帮大家少走一点弯路。 -----------------我是分割线-------------- 本文章主要从数据分析、机器学习(深度学习)的目的出发, 讲讲如何零基础学习Python语法、数据分析模块(Numpy、Scipy、Scikit和Pandas等)以及使用python进行机器学习(SFrame,tensorflow)。 (今天就写个小框架吧^_^) 去年开始接触Python数据分析的学习,全是自学,所以对于广大网友来说应该有较大的借鉴意义。熟练掌握任何一门语言,几乎都需要经过以下过程: 良师--学习Python课程+入门书籍+浏览技术博客 社区帮助--善于使用搜索引擎、Mail List 益友 -- 寻找学习伙伴 Learn by Code --项目实践 一、Python学习课程推荐 这两个学习课程从最基础的Python语法开始,介绍了Python数据分析、统计模型以及机器学习的各个方面,内容十分充足。之所以建议使用老外的课程是因为,老外上课假定你什么都不会,讲解深入浅出,尤其是对于华盛顿大学的机器学习课程,把复杂的概念讲解得十分简单。 1. 密歇根大学的

关于python学习路线

允我心安 提交于 2019-12-25 10:43:55
* Python进阶(目录/书籍/学习路线) 忘了从哪里转的了,没办法标记哦,实在不好意思... 目录 : ) 1. 简介 &helloworld& 开发环境配置 2. 基本语法:标识符 & 变量 & 运算符 3. 基本控制流 4. 基本数据结构 1- 列表 5. 基本数据结构 2- 元祖 6. 基本数据结构 3- 字典 7. 基本数据结构 4- 集合 5. 数字处理 A. 数字基础 B. 相关扩展模块 6. 字符串处理 A. 字符串基础 B. 格式化 C. 正则表达式 D. 编码相关 7. 文件处理 A. 文件基础 B. 相关模块 8. 异常处理 9. 时间处理及相关模块 10. 函数定义及参数传递 11. 内建函数 12. 模块和包 13. 面相对象 A. 基础 B. 类 C 魔术方法(方法运算符重载) 14. 函数式编程: A. 基础 B. 迭代器 C. 生成器 D. 装饰器 15.docstring 16.PyUnit 及调试 17. 垃圾回收 18. 设计模式 19. 元类 20.Pythonic 最佳实践 21. 性能最佳实践 22. 命令行编程 23. 多线程 24.Python 相关要求 25. 题目 & 学习路线 & 资源链接 PS: 目测搞完后有些多,不会按照顺序发,写完一章会同步更新到目录。 -20121005 有任何问题回复到这个页面吧

python之路:进阶篇 内置函数

不打扰是莪最后的温柔 提交于 2019-12-25 06:50:51
内置函数 一、map 对序列的每一个元素进行操作,最终获得操作后的新序列。 实例: 1 # !/usr/bin/env python 2 # --*--coding:utf-8 --*-- 3 li = [11, 22, 33] 4 news = map( lambda a: a + 2, li) 5 print news 6 li = [22, 33, 44] 7 l1 = [11, 22, 33] 8 news = map( lambda a, b: a - b, li, l1) 9 print news 10 li = [11, 22, 33] 11 news = map( lambda a: a * 2, li) 12 print news 13 li = [100, 2200, 3300] 14 news = map( lambda a: a / 2, li) 15 print news 实例输出结果: 1 [13, 24, 35] 2 [11, 11, 11] 3 [22, 44, 66] 4 [50, 1100, 1650] 序列中的每一个元素经过操作,得出新的序列。两个序列相互操作必须元素相同,如果不同会造成多出的元素与None相互操作,出现错误。 1 # !/usr/bin/env python 2 # --*--coding:utf-8 --*-- 3 li =

牢记数据结构的时间复杂度 #P004#

人走茶凉 提交于 2019-12-24 21:37:09
虽然大多数情况下,Python程序都不会应用在计算密集型的场景。但是,作为一个合格的工程师,依然应该对Python内置数据类型的时间复杂度有一个基本的了解,才能够避免写出一些明显低效的代码。打个比方,我们都知道,在Python里面list是异构元素的集合,并且能够动态增长或收缩,可以通过索引和切片访问。那么,又有多少人知道,list是一个数组而不是一个链表呢。 1 时间复杂度的重要性 算法的时间复杂度是用来度量算法的运行时间,算法的空间复杂度用来度量程序占用的内存,这两个都是计算机系统中非常重要的概念。它们直接关乎程序的运行效率,其重要程度怎么强调都不为过。在这一小节中,我们将通过一个Python字符串连接的例子,来解释说明程序的时间复杂度和空间复杂度的重要性。 合格的Python工程师应该知道,Python中的字符串是不可变的。因为Python中的字符串是不可变的,在进行字符串操作时,Python每次操作都会产生一个新的字符串,新的字符串会占用一块独立的内存。因此,在操作字符串时,应该避免产生太多的中间结果。例如,下面就是一个典型的反面教材: In [1]: fruits = ['orange', 'apple', 'banana', 'pear'] In [2]: statement = fruits[0] In [3]: for item in fruits[1:]: ...

Python 入门 之 类的三大关系(依赖 / 组合/ 继承关系)

帅比萌擦擦* 提交于 2019-12-24 20:22:20
在面向对象的中,类与类之间存在三种关系:依赖关系、组合关系、继承关系。 1、依赖关系:将一个类的类名或对象当做参数传递给另一个函数被使用的关系就是依赖关系 class People: def __init__(self,name): self.name = name def open(self,bx): bx.open_door(self) def close(self,bx): bx.close_door(self) class Refrigerator: def __init__(self,name): self.name = name def open_door(self,p): print(f"{p.name} 打开冰箱") def close_door(self,p): print(f"{p.name} 关闭冰箱") r = People("大魔") # People类实例化一个对象r aux = Refrigerator("奥克斯") # Refrigerator类实例化一个对象aux r.open(aux) # 将aux对象当做参数传递给r对象的open方法使用 r.close(aux) # 将aux对象当做参数传递给r对象的close方法使用 推荐Python大牛在线分享技术 扣qun:855408893 领域:web开发,爬虫,数据分析,数据挖掘,人工智能

python 实现A星算法

我的未来我决定 提交于 2019-12-23 21:41:06
python A星算法 效果图 上代码 源码下载地址 程序下载地址 效果图 (程序在cmd中打印所以有点闪屏!!!) 上代码 # -*- coding: utf-8 -*- # @Date : 2019-12-23 20:53:33 # @Author : Flying Hu (1152598046@qq.com) # @Link : http://www.flyinghu.cn # @name : A星算法实现 # @Version : 0.1 import os import math from random import randint import time # 定义全局变量 gz_char = '█' # 定义默认格子字符 fruit_char = '★' # 定义果实显示字符 self_char = '●' # 定义自身显示字符 wall_char = '◆' # 定义墙壁显示字符 # 全程使用上往下方向为x正方向 (二维列表行索引增加方向) # 全程使用左往右方向为y正方向 (二维列表列索引增加方向) class Map2D ( object ) : '''2D地图类''' def __init__ ( self , width = 20 , height = 20 ) : '''初始化 Args: width 地图宽 height 地图高 ''' self .

python之网络编程(socket)

≡放荡痞女 提交于 2019-12-23 13:02:27
目录 一、socket介绍 二、方法说明 三、实例 四、粘包 五、socketserver实现并发 一、socket介绍 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求。 socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用【打开】【读写】【关闭】模式来操作。socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭) socket和file的区别: file模块是针对某个指定文件进行【打开】【读写】【关闭】 socket模块是针对 服务器端 和 客户端Socket 进行【打开】【读写】【关闭】 二、方法说明 import socket socket.socket(socket_family,socket_type,protocal=0) socket_family 可以是 AF_UNIX 或 AF_INET。socket_type 可以是 SOCK_STREAM 或 SOCK_DGRAM。protocol 一般不填,默认值为 0。 获取tcp/ip套接字 tcpSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 获取udp

python 之 线程,进程,协程

泪湿孤枕 提交于 2019-12-23 07:09:16
python 线程: Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元。 1 #!/usr/bin/env python 2 #_*_ coding:utf-8 _*_ 3 import threading 4 import time 5 6 def show(arg): 7 time.sleep(1) 8 print('threading' + str(arg)) 9 10 for i in range(10): 11 t = threading.Thread(target=show, args=(i,)) 12 t.start() 13 14 print ('main thread stop!') 上述代码创建了10个“前台”线程,然后控制器就交给了CPU,CPU根据指定算法进行调度,分片执行指令。 更多方法: start 线程准备就绪,等待CPU调度。 setName 为线程设置名称。 getName 获取线程名称。 setDaemon 设置为后台线程或前台线程(默认)。           如果是后台线程,主线程执行过程中,后台线程也在进行,主线程执行完毕后,后台线程不论成功与否,均停止。           如果是前台线程,主线程执行过程中,前台线程也在进行,主线程执行完毕后等待前台线程也执行完成后,程序停止。 join 逐个执行每个线程

Python-线程、进程、协程

倖福魔咒の 提交于 2019-12-23 07:08:55
Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元。 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 import threading 4 import time 5 6 def show(arg): 7 time.sleep(1) 8 print 'thread'+str(arg) 9 10 for i in range(10): 11 t = threading.Thread(target=show, args=(i,)) 12 t.start() 13 14 print 'main thread stop' 上述代码创建了10个“前台”线程,然后控制器就交给了CPU,CPU根据指定算法进行调度,分片执行指令。 更多方法: start 线程准备就绪,等待CPU调度 setName 为线程设置名称 getName 获取线程名称 setDaemon 设置为后台线程或前台线程(默认) 如果是后台线程,主线程执行过程中,后台线程也在进行,主线程执行完毕后,后台线程不论成功与否,均停止 如果是前台线程,主线程执行过程中,前台线程也在进行,主线程执行完毕后,等待前台线程也执行完成后,程序停止 join 逐个执行每个线程,执行完毕后继续往下执行,该方法使得多线程变得无意义 run

python继承 super()

为君一笑 提交于 2019-12-23 05:43:23
写这篇博文,始于以下问题的探究: 1 #coding:utf-8 2 class A(object): 3 def __init__(self): 4 print 'enter A' 5 print 'leave A' 6 class B(object): 7 def __init__(self): 8 print 'enter B' 9 print 'leave B' 10 11 class C(A): 12 def __init__(self): 13 print 'enter C' 14 super(C, self).__init__() 15 print 'leave C' 16 17 class D(A): 18 def __init__(self): 19 print 'enter D' 20 super(D, self).__init__() 21 print 'leave D' 22 23 class E(B, C): 24 def __init__(self): 25 print 'enter E' 26 B.__init__(self) 27 C.__init__(self) 28 print 'leave E' 29 30 class F(E, D): 31 def __init__(self): 32 print 'enter F' 33 E.__init_