廖雪峰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学习笔记——使用元类

…衆ロ難τιáo~ 提交于 2019-12-22 15:14:44
元类(MetaClasses) 元类提供了一个改变Python类行为的有效方式。 元类的定义是“一个类的类”。任何实例是它自己的类都是元类。 class demo(object): pass obj = demo() print "Class of obj is {0}".format(obj.__class__) print "Class of obj is {0}".format(demo.__class__) # Class of obj is <class '__main__.demo'> # Class of obj is <type 'type'> 在上例中,我们定义了一个类demo,并且生成了一个该类的对象obj。首先,可以看到obj的__class__是demo。有意思的来了,那么demo的class又是什么呢?可以看到demo的__class__是type。 所以说type是python类的类,换句话说,上例中的obj是一个demo的对象,而demo本身又是type的一个对象。 所以说type就是一个元类,而且是python中最常见的元类,因为它使python中所有类的默认元类。 因为元类是类的类,所以它被用来创建类(正如类是被用来创建对象的一样)。但是,难道我们不是通过一个标准的类定义来创建类的么?的确是这样,但是python内部的运作机制如下:

小Y的Python学习日志--初识Python

佐手、 提交于 2019-12-22 15:04:58
#本文仅为个人学习过程的整理和记录,如有从他人博客、网站摘录的内容,本人会明确标明,如有涉及侵权,请联系本人,本人会在第一时间删除。   一下的资料整理来自(1)廖雪峰的Python教程 http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000            (2)简明Python教程 http://woodpecker.org.cn/abyteofpython_cn/chinese/ 一初识Python 1.Python的历史 (1)Python是一种解释性的、面向对象的、带有动态语义的高级程序设计语言(胶水语言)。 (2)Python简史:   1989年Guido开发,名称由来 (3)Python发展历程:   CNRI时期;   BeOpen时期;   DC时期(Zope系统);   Python3.0; 2.Python特征 (1)Python在编程语言中的定位:   “脚本语言”(scripting language)   高阶动态编程语言 (2)特点   简单易学:Python是一门代表简单主义思想的语言,Python伪代码本质是其最大的优点之一。语法简单,易上手。   解释性&编译性:Python编写的程序不需要编译成二进制代码,可以直接从源代码运行

【Python】偏函数

大城市里の小女人 提交于 2019-12-18 20:19:16
此文转载自 廖雪峰 。 Python的 functools 模块提供了很多有用的功能,其中一个就是偏函数(Partial function)。要注意,这里的偏函数和数学意义上的偏函数不一样。 在介绍函数参数的时候,我们讲到,通过设定参数的默认值,可以降低函数调用的难度。而偏函数也可以做到这一点。举例如下: int() 函数可以把字符串转换为整数,当仅传入字符串时, int() 函数默认按十进制转换: >>> int('12345') 12345 但 int() 函数还提供额外的 base 参数,默认值为 10 。如果传入 base 参数,就可以做N进制的转换: >>> int('12345', base=8) 5349 >>> int('12345', 16) 74565 假设要转换大量的二进制字符串,每次都传入 int(x, base=2) 非常麻烦,于是,我们想到,可以定义一个 int2() 的函数,默认把 base=2 传进去: def int2(x, base=2): return int(x, base) 这样,我们转换二进制就非常方便了: >>> int2('1000000') 64 >>> int2('1010101') 85 functools.partial 就是帮助我们创建一个偏函数的,不需要我们自己定义 int2() ,可以直接使用下面的代码创建一个新的函数

我的Python自学之路:Python学习路线

不羁的心 提交于 2019-12-17 19:00:44
一、Python学习路线 1. 基础知识 基础知识1:基本规则、Python语言特点、计算机语言、如何运行Python、变量赋值五个方面,辅助你快速掌握Python编程的基底知识。 基础知识2:模块结构、布局、IO编程流程、标识符、Python对象、内存管理、动态类型六大模块,两张基础知识导图可以帮助你区域化了解Python的组成部分及基本操作。 2. 数据类型 学习Python少不了对数据的了解,这张图整理了数据类型的分类、作用、空值、标准数据、if语句等等模块。 3.序列 这张图整理了序列的有序排列、标准操作符与序列类型操作符的重点知识,以及可操作性的BIF。 4.字符串 字符串是个比较庞大而精细的部分,接着上图的BIF可分为标准类型、序列类型、字符串类型,字符串可分为五种操作符类型,此图还整理了序列的独特特性以及编码问题,可以说很详细了。 5. 列表|元素 关于列表|元素,首先说拷贝问题,分深浅拷贝两种形式。tuple的内建函数、特殊特性与list的操作符、内建函数是重点部分。 6. 字典|集合 这张图主要整理了字典|集合中set、dict的功能、分类、BIF、操作问题。 7. 条件|循环 条件|循环包含生成器、迭代器、列表解析的使用、拓展,相关BIF、if语句循环控制也能够快速掌握重点。 8. 文件对象 关于文件对象内建方法、内建函数、内建属性都有具体内容,文件迭代的运用

廖雪峰Python入门 QA收集

余生颓废 提交于 2019-12-14 11:22:18
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Q出处: http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014316399410395f704750ee9440228135925a6ca1dad8000 直接运行py文件 能不能像.exe文件那样直接运行 .py 文件呢?在Windows上是不行的,但是,在Mac和Linux上是可以的,方法是在 .py 文件的第一行加上一个特殊的注释: ‍ Q:为什么 许多 python 文件的头部都会写上下面这一行 ‍ #!/usr/bin/env python3 A: 如果你用 python xxoo.py 来运行,那么写不写都没关系,如果要用 ./xxoo.py 那么就必须加这行,这行被称为 shebang, 用来为脚本语言指定解释器. 通常认为用 #!/usr/bin/env python 要比 #!/usr/bin/python 更好,因为 python 解释器有时并不安装在默认路径,例如在 virtualenv 中。 这是脚本语言共同遵守的规则:当第一行为 #!/path/to/script/interpreter时,指定了用来执行本脚本的解释器。 注意: 1、必须是文件的第一行 2、必须以#

Python & PyCharm 安装与简单使用

家住魔仙堡 提交于 2019-12-12 17:33:47
今天有些无聊,又听别人说Python怎么怎么的好,所以就来试下。 Python下载地址: https://www.python.org/downloads/windows/ 根据你的系统要求,安装你所需要的版本。 其实Python的安装简单得很,直接跟进下一步就OK。 下面我们继续 PyCharm官网下载: https://www.jetbrains.com/pycharm/download/#section=windows 因为我只是学下吧了,所以不需要使用专业版,只是使用免费的就OK,如果有谁需要使用专业的,那可以直接下载专业的版本,但是码只能是自己解决啦。 1、双击exe,进入“欢迎安装”界面,直接下一步 2、进入“选择安装路径”界面,我一般不喜欢安装在系统盘,而是直接安装在软件下载文件夹中 ,选择好路径以后,下一步 3、 进入“安装选项”界面,按自己需求选择,我是全选,下一步 4、进入“选择开始菜单”界面,可以重新取一个名字,下一步 5、进入“安装过程”界面,等一会儿,安装完后,下一步 6、选择“现在重启”还是“稍后重启”,我选“稍后重启” 7、如果以前没安装过,选择“不导入设置” ,点击“OK” 8、 进入“许可协议”界面,选择“同意”,不同意也没办法,点击“continue” 9、这个随便选,只想要你的统计数据 PyCharm简单使用 1、点击软件图标,

GIL全局解释器锁

六月ゝ 毕业季﹏ 提交于 2019-12-09 18:08:45
拓展 什么是GIL全局解释器锁 为什么要有GIL全局解释器锁? GIL全局解释器锁的优缺点 多线程和IO密集型的应用场景 转载文章 TOC 拓展 python解释器: Cpython C语言写的 Jpython java语言写的 什么是GIL全局解释器锁 在同一个进程下开启的多线程,同一时刻只能有一个线程执行,因为Cpython的内存管理不是线程安全 摘自官方文档解释: In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native threads from executing Python bytecodes at once. This lock is necessary mainly because CPython’s memory management is not thread-safe. (However, since the GIL exists, other features have grown to depend on the guarantees that it enforces.) 结论:在Cpython解释器中,同一个进程下开启的多线程,同一时刻只能有一个线程执行,无法利用多核优势。 为什么要有GIL全局解释器锁?

Python爬虫入门项目

别等时光非礼了梦想. 提交于 2019-12-06 17:00:45
Python是什么 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。 创始人Guido van Rossum是BBC出品英剧Monty Python’s Flying Circus(中文:蒙提·派森的飞行马戏团)的狂热粉丝,因而将自己创造的这门编程语言命名为Python。 人生苦短,我用python,翻译自 "Life is short, you need Python" Python英式发音:/ˈpaɪθən/ ,中文类似‘拍森’。而美式发音:/ˈpaɪθɑːn/,中文类似‘拍赏’。我看麻省理工授课教授读的是‘拍赏’,我觉得国内大多是读‘拍森’吧。 2017年python排第一也无可争议,比较AI第一语言,在当下人工智能大数据大火的情况下,python无愧第一语言的称号,至于C、C++、java都是万年的老大哥了,在代码量比较方面,小编相信java肯定是完爆其它语言的。 不过从这一年的编程语言流行趋势看,java依然是传播最多的,比较无论app、web、云计算都离不开,而其相对python而言,学习路径更困难一点,想要转行编程,而且追赶潮流,python已然是最佳语言。 许多大型网站就是用Python开发的,国内:豆瓣、搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝、热酷、土豆、新浪、果壳…; 国外

Python入门基础知识学习笔记之一

柔情痞子 提交于 2019-12-06 13:05:01
  为什么要写这篇文章?   本人做过Objective-C开发,现在在用C#做WinForm开发。近段时间在学习Python入门基础知识时,发现有很多知识点和Objective-C的不一样。故想通过本文记录自己学习过程中,遇到的新知识点,也为了方便以后自己查找还没有掌握牢固的知识点。   特此声明:   本文非干货!   本文非干货!   本文非干货!   如果有同样想学习Python的网友,不小心跑到了这里来。或许你们可以考虑下从以下途径找Python的学习资料:  廖雪峰先生的Python学习网站(我最开始是在那里学的,纯文字代码学习资料)。 菜鸟教程网Python相关学习资料(纯文字代码资料)。 阿里云大学(有视频教学,对于我这种学习能力不够的人,看视频学更合适些,不过这个网站要注册)。 其它网上可搜索到的资料。   好了,接下来我要开始写我自己的笔记了。   1. Python中变量赋值时,并不需要声明数据类型。它可以根据赋值的数据类型来确定该变量的类型。故变量在创建时必须赋值。    2. Python中的运算符:     1)字符串和数字的乘法运算,它表示的是对字符串作复制操作。     2)"//"这个运算符表示整除。     3)"**"这个运算符表示幂运算。     4)Python中没有 i++ 的表示方式,但 i += 1 还是有的。     5