序章
- 关于python;
- 为什么选择python来做数据科学;
- 准备实践环境;
千里之行,始于足下&
Python从零开始系列
关于Python
python是什么?
Python is an easy to learn, powerful programming language --引自The Python Tutorial
python 历史
20世纪80年代,荷兰大神 Guido van Rossum 开始了python 的开发。从第一个发行版本python 0.9.0 发行于1991年。
2008年,python 同时发行了python 2.6 和python 3.0 ,随后python 2和python 3 并行开发和发行。
说到这里,一个令初学者头疼的问题来了,选择哪个版本呢?
通常提倡学习python3。一些新特性会很实用。
但是python2执行起来会感觉更加流畅。
这篇教程主要以python3 为主。
python 特性
我们每学习一门编程语言,都会去关注其特性。了解编程语言的一些特性,有助于我们选择合适的技术栈。
接下来我们来看看python拥有哪些特性。
- 解释型编程语言。
- 多重泛型,例如:面向对象、函数式、命令式、过程式编程等等。
- 用途广泛,可以快速开发、交互式代码开发、构建大型复杂应用程序;既可以用于低级系统操作,有可以用于复杂的分析任务。
- 面向对象 object-oriented
- 高效的高级数据结构 efficient high-level data structures。
- 优雅的语法 elegant syntax
- 动态类型 dynamic typing(区别于静态声明)
- 强制缩进 (后续学习过程特别注意,缩进层级错了会导致解释器无法理解你写的代码)
- 垃圾回收机制
- 简单、易学、易用
- 跨平台(树莓派等嵌入式linux设备、esp8266、windows、osx、linux,32位和64位)
- 健壮
- 拥有健全的生态系统
为什么选择python来做数据科学
我们已经了解过python的特性,其中简单提到生态系统。
python拥有一套完善的生态系统,拥有强大的科学栈(Scientific Stack)。
简单说,科学栈就是很多库的集合,比如我们后续会一起学习的numpy、scipy、matplotlib、pandas ……。
其中的scipy实现了科学和金融中常用的重要功能。具体后续教程中一起学习。
对比java,python易学易用,代码可读性很高,免编译。
对比nodejs,python 科学栈非常诱人。
对比matlab, python 的大部分科学栈是免费的。同时python有很多现成的科学计算套件非常方便(比如pandas,spider)
准备实践环境
在对python 有了简单认识后,我们开始着手准备实验环境。
在windows上安装python
- 检查环境变量是否生效,win键+R ==>>输入 cmd 回车==>>依次执行如下命令测试
python -V
pip -v
如果出现如下结果,恭喜你,python3.6.1版已经被安装到你的电脑上啦。
Microsoft Windows [版本 10.0.14393]
(c) 2016 Microsoft Corporation。保留所有权利。
C:\Users\ipaddr>python -V
Python 3.6.1
C:\Users\ipaddr>pip -V
pip 9.0.1 from d:\codelang\python36\lib\site-packages (python 3.6)
C:\Users\ipaddr>
选择一款顺手的文本编辑器
选择一款带代码高亮甚至代码提示的代码编辑器,可以有效提高效率。
这里推荐几款
vscode 是微软开源的一款轻量级代码编辑器,适当添加插件即可成为开发神器进入官网,点击Download按钮
准备科学栈
这里主要演示如何使用pip 安装 一些包(包可以是一个库或多个库的集合)
我们计划后续边学边准备我们自己的科学栈
先来安装一个ipython吧,这里有必要简单介绍一下ipython,IPython 可以认为是一个开发工具,类似于我之前提到的spyder.
pip install ipython
结果如下
C:\Users\ipaddr>pip install ipython
Collecting ipython
Downloading ipython-5.3.0-py3-none-any.whl (750kB)
100% |████████████████████████████████| 757kB 917kB/s
Collecting pygments (from ipython)
Downloading Pygments-2.2.0-py2.py3-none-any.whl (841kB)
100% |████████████████████████████████| 849kB 854kB/s
Collecting traitlets>=4.2 (from ipython)
Downloading traitlets-4.3.2-py2.py3-none-any.whl (74kB)
100% |████████████████████████████████| 81kB 2.5MB/s
Collecting colorama; sys_platform == "win32" (from ipython)
Using cached colorama-0.3.7-py2.py3-none-any.whl
Collecting simplegeneric>0.8 (from ipython)
Downloading simplegeneric-0.8.1.zip
Requirement already satisfied: setuptools>=18.5 in d:\codelang\python36\lib\site-packages (from ipython)
Collecting prompt-toolkit<2.0.0,>=1.0.4 (from ipython)
Downloading prompt_toolkit-1.0.14-py3-none-any.whl (248kB)
100% |████████████████████████████████| 256kB 1.7MB/s
Collecting decorator (from ipython)
Downloading decorator-4.0.11-py2.py3-none-any.whl
Collecting pickleshare (from ipython)
Downloading pickleshare-0.7.4-py2.py3-none-any.whl
Collecting ipython-genutils (from traitlets>=4.2->ipython)
Downloading ipython_genutils-0.2.0-py2.py3-none-any.whl
Collecting six (from traitlets>=4.2->ipython)
Using cached six-1.10.0-py2.py3-none-any.whl
Collecting wcwidth (from prompt-toolkit<2.0.0,>=1.0.4->ipython)
Downloading wcwidth-0.1.7-py2.py3-none-any.whl
Installing collected packages: pygments, ipython-genutils, decorator, six, traitlets, colorama, simplegeneric, wcwidth, prompt-toolkit, pickleshare, ipython
Running setup.py install for simplegeneric ... done
Successfully installed colorama-0.3.7 decorator-4.0.11 ipython-5.3.0 ipython-genutils-0.2.0 pickleshare-0.7.4 prompt-toolkit-1.0.14 pygments-2.2.0 simplegeneric-0.8.1 six-1.10.0 traitlets-4.3.2 wcwidth-0.1.7
C:\Users\ipaddr>
这样我们就安装好了ipython。从结果可以看到,新版本的pip已经可以自动安装该package所依赖的package
后续我们会经常这样安装package。