ubuntu下搭建一个数据化处理的开发环境
1、搭建matplotlib环境
构建matplotlib运行环境,需要满足相关软件环境。
numpy库提供大数据集的数据的数据结构和数学方法。诸如元组、列表或字典等python的默认数据结构同样可以很好的支持数据的插入、删除和谅解。NumPy的数据结构支持矢量操作,使用简便,同时具有很高的执行效率。矢量操作在实现时充分考虑了大数据的需要,基于C语言的方式也保证了执行效率。
基于Numpy的scipy库,是Python的标准科学计算和数学计算工具包,包含了大量的专用函数和算法。大部分函数和算法源自著名的Netlib软件仓库(http://www.netlib.org),实际上是使用C语言和Fortran实现的。
1、安装NumPy
安装Python-NumPy软件包
apt-get install python-numpy

安装完成后,使用命令
python -c 'import numpy; printf numpy_.__version__'
检查版本。

2、安装所需库
libpng1.2:PNG文件处理
freetype6:处理True type字体
sudo apt-get install libfreetype6
sudo apt-get install libpng12-dev
3、安装matplotlib
apt-get install python-matplotlib4
如果你想进行机器学习方向的学习,下面这些库也是必不可少的。
4、安装scipy
Scipy是一个高级的科学计算库,它和Numpy联系很密切,Scipy一般都是操控Numpy数组来进行科学计算,所以可以说是基于Numpy之上的开发工具。
apt-get installl python-scipy5
5、安装数据分析工具pandas
apt-get install python-pandas 6
6、sklearn是必不可少的,sklearn中包含了大量的优质的数据集,在你学习机器学习的过程中,你可以通过使用这些数据集实现出不同的模型。安装指令
apt-get install python-sklearn
2、安装virtualenv和virtualenvwrapper
如果同时工作在多个项目上,或是需要在不同项目间频繁切换,将所有软件都安装在操作系统上并不是一个好主意。当需要在不同系统上运行软件时,这种方式会带来问题。virtualenv它可以创建一个独立的python环境,这样就可以让我们很容易的在不同的运行环境之间切换。同时,如果需要切换到另外的机器或者需要在产品服务器上部署软件时,用virtualenv可以很容易的重新构建相同的软件包。
1、安装pip
pip是安装并管理Python软件包的工具,可以用它来代替easy install工具。pip安装命令如下:
apt-get install python-setuptools easy_install pip
什么时候该用pip,什么时候该用apt-get呢?情况是这样的,如果你需要最新版本的python依赖包,你可以直接使用apt-get,在项目突然需要使用旧版本的依赖包时,你就可以使用virtualenv和pip来使完美得再安装上一个旧版本的依赖包;
2、安装virtualenv和virtualenvwrapper
easy_install virtualenv
easy_install virtualenvwrapper
安装完成后,需要在系统中添加virtualenvwrapper的环境变量,在~/.bashrc文件中的最后添加路径如下
source "/usr/local/bin/virtualenvwrapper.sh"
export WORKON_HOME="/opt/virtual_env/"
3、关于virtualenv使用
(1) 首先创建一个虚拟环境
virtualenv python_env

系统在预设虚拟环境时,默认的会依赖系统环境中的包,如果不想依赖西戎的包,可以加上 --no-site-packages 来建立虚拟环境即
virtualenv --no-site-packages python_env
(2)启动虚拟环境
进入到虚拟环境的目录下,使用命令
source bin/active
可以看到,在最前面多了一个虚拟环境的名称,说明虚拟环境已经开始运行了。

(3)在虚拟环境安装新的Python 套件
安装套件的命令为
pip install [套件名称]
如果想要避免pip在没有进入虚拟环境时被使用,可以在~/.bashrc加上:
export PIP_REQUIRE_VIRTUALENV=true
要求pip一定要在虚拟环境中执行。
也可以用下面的设定,让系统的pip自动使用启动中的虚拟环境。
export PIP_RESPECT_VIRTUALENV=true
避免意外将套件安装至系统环境。
(4)退出虚拟环境
在命令中输入
deactivate
即可推出虚拟环境。

4、关于virtualenvwrapper的使用
Virtualenvwrapper 是一个Virtualenv 的扩展,可使虚拟环境的管理变得更容易。
详细来说,Virtualenvwrapper 提供下述功能:
- 将所有的虚拟环境整合在一个目录下。
- 管理(新增、移除、复制)所有的虚拟环境。
- 可以使用一个命令切换虚拟环境。
- Tab 补全虚拟环境的名字。
- 每个操作都提供允许使用者自订的hooks。
- 可撰写容易分享的extension plugin 系统。
使用如下:
使用命令mkvirtualenv可以进行一次性装配
mkvirtualenv [-i package] [-r requirements_file] [virtualenv options] ENVNAME
当然也可以一步步来,首先创建虚拟环境

然后可以看到在~/.virtualenvs的文件下创建了一个虚拟环境,我们可以如virtualenv一样去文件加下激活,但是这样就比较麻烦,virtualenvwrapper提供了一个非常有用的激活命令workon来进行激活,我们可以直接使用命令进行激活。
workon 要激活的环境名

除此之外,virtualenvwrapper还提供了一些其他的命令方便我们使用:
(1)虚拟环境列出指令
lsvirtualenv [-b] [-l] [-h]
其中-b是简短模式;-l是详细模式(预设);-h是印出help资讯。

(2)复制虚拟环境指令
cpvirtualenv ENVNAME TARGETENVNAME

(3)移除虚拟环境指令
rmvirtualenv ENVNAME

还有更多指令请查看查考手册。
3、安装图像处理工具PIL
python图像库(PIL)为python提供了强大的图像处理能力,PIL支持的文件格式相当广泛,其特性有快速数据访问、点运算、滤波、图像缩放、旋转、任意仿射转换等。
使用命令
apt-get install python-PIL
即可安装。
有一个专门针对PIL编写的在线手册,可以查看链接学习。
4、安装requests模块
我们需要的大部分数据都可以同通过HTTP或类似协议得到,因此,我们需要一些工具来实现数据访问,虽然python提供的urllib2提供了访问远程资源的能力,但是该模块完成基础任务的工作量较大。Request封装了HTTP1.1的内容,并提供了新的API,仅在需要实现非默认访问的情况下才需要暴露相关内容。安装用
apt-get install python-requests
下面为一个requtests的使用小例子(运行环境python3.4):
import requests
r = requests.get('http://github.com/timeline.json')
print(r.content)
运行结果如下:

本例中,是向github站的URI发送HTTP GET请求,以JSON格式返回了GITHub网站的活动时间表。在成功读取HTTP响应后,对象r包含了HTTP响应内容以及其他属性信息(HTTP状态码、cookie、HTTP头元数据,甚至包括当前响应所对应的请求信息。
5、在代码中配置matplotlib参数
在matplotlib的配置文件.rc文件中,已经为大部分属性提供了默认值,这里讲解下如何在代码中配置matplot参数。
在代码执行过程中,有两种方法运行参数:使用字典(rcParams)或调用matplotlib.rc()命令进行更改。第一种方式,可以通过rcParams访问修改所有已经加载的配置项,第二种方式中,可以通过向matplotlib.rc()传入属性的关键字元元组来修改配置项。
如果要修改重置动态修改后的配置参数,可以调用matplotlib.rcdefaults()将配置重置为标准设置。
下面通过两段代码延时之前介绍的功能
使用matplotlib.rcParams的例子
import matplotlib as mpl
mpl.rcParams['lines.linewidth'] = 2
mpl.rcParams['lines.color'] = 'y'
使用matplotlib.rc()函数的例子。
import matplotlib as mpl
mpl.rc('lines',linewidth=2,color='r')
上面两个例子具有相同的作用,第二个例子中,我们设定后续的所有线条宽度为2个点,第一个例子中的最后一条语句表面光,语句之后的所有线条的衍射均为红色,除非本地覆盖他。下面给出一个实际应用的例子。
import matplotlib.pyplot as plt
import numpy as np t=np.arange(0.0,1.0,0.01)
s=np.sin(2*np.pi*t) plt.rcParams['lines.color'] = 'r'
plt.plot(t,s)
c=np.cos(2*np.pi*t)
plt.rcParams['lines.linewidth'] = '3'
plt.plot(t,c)
plt.show()
使用python test.py运行上面的test.py程序,运行结果如下:

6、为项目设置matplotlib参数
如果不想每次使用matplot时都在代码开始部分进行分配,就需要为不同的项目设定不同的默认配置项。假设一个项目对于matplot的特性参数总会设置相同的值,就没有必要每次编写新的绘图代码时都进行相同的配置。取而代之的,应该是在代码之外,使用一个永久的文件设定matplotlib参数默认值。
通过matplotlibrc来配置文件。配置文件在三个不同位置,而他们的位置决定了他们的应用范围,三个位置的说明如下:
当前目录:即代码运行的目录。在当前目录下,可以为目录所包含的当前项目定制matplotlib配置项。配置文件的名称为matplotlibrc。
用户级.matplotlib/matplotlibrc文件:通常在用户的$HOME目录下。可以用matplotlib.get_configdir()命令来找到当前用户的配置文件目录。
安装级配置文件:通常在python的site-packages目录下。这是系统级配置,不过在每次重新安装matplotlib后,覆盖文件会被覆盖。因此如果希望保持持久有效的配置,最好选择在用户级配置文件中进行设置。目前对本配置文件的最佳应用方式,是将其作为默认配置模板。如果在用户级配置文件已经比较混乱,或者需要为新项目做全新配置时,可以基于该配置文件进行配置。
在shell中运行以下命令,即可打印出配置文件目录的位置:
python -c 'import matplotlib as mpl; print mpl.get_configdir()'

配置文件包括以下配置项:
axes:设置坐标轴边界和表面的颜色、坐标刻度大小和网格的显示。
backend:设置目标输出TKAgg和GTKAgg。
figure:控制dpi、边界颜色、图形大小和子区设置。
font:字体集,字体大小和样式设置。
grid:设置网格颜色和线型。
legend:设置图例和其中文本的显示。
line:设置线条(颜色、线性、宽度等)和标记。
patch:填充2D空间的图形对象,如多边形和圆。控制线宽、颜色和抗锯齿设置等。
savefig:可以对保存的图形进行单独设置。
text:设置字体颜色、文本解析等。
verbose:设置matplotlib在执行期间信息输出,如silent、helpful、debug和debug-annoying。
xticks和yticks:为x、y轴的主刻度和次刻度设置颜色、大小、方向以及标签大小。
参考资料
MATPLOTLIB
关于在Ubuntu下安装配置numpy,scipy,matplotlibm,pandas 以及sklearn
Python: Ubuntu 安装numpy,scipy,matplotlib
Python 的虛擬環境及多版本開發利器─Virtualenv 與 Pythonbrew
http://effbot.org/
ubuntu下搭建一个数据化处理的开发环境的更多相关文章
- linux-mint下搭建android,angularjs,rails,html5开发环境 - qijie29896的个人空间 - 开源中国社区
linux-mint下搭建android,angularjs,rails,html5开发环境 - qijie29896的个人空间 - 开源中国社区 http://blog.csdn.net/orzor ...
- 搭建一个完整的Java开发环境
搭建一个完整的Java开发环境 作为一个Java程序员,配置一个java开发环境是必备的技能,今天给广大菜鸟初学者补上一课.环境的配置,大概就分三个1,JDK 2,Tomcat(或者其他的)3,ecl ...
- OSX 下搭建Asp.Net vNext的开发环境
开年第一天,按照惯例逛逛各个网站,看看7天有没有什么错过的东西,偶见VS 2015的CPT 6发布了,据说更新ASP.NET,就顺便去官方网站看了看,也忘记在什么地方偶然发现一个叫OmniSharp的 ...
- linux-mint下搭建android,angularjs,rails,html5开发环境
目录[-] 必备软件: 环境配置: [open-jdk-6.0] [android-sdk] [ant] [github] [node.js] [rvm](ruby-1.9.3 rails-4.0.0 ...
- PyQt5系列教程(一)Mac OS X下搭建Python3.5.1+PyQt5开发环境
软硬件环境 OS X EI Capitan Python 3.5.1 PyQt 5.5.1 PyCharm 5.0.1 前言 Qt是一个开源的跨平台的GUI框架,为很多计算机语言提供了应用程序开发接口 ...
- Mac下搭建基于PlatformIO的嵌入式开发环境(STM32开发)
PlatformIO简介 PlatformIO是开源的物联网开发生态系统.提供跨平台的代码构建器.集成开发环境(IDE),兼容 Arduino,ESP8266和mbed等 支持在Windows.Lin ...
- 菜鸟从零学编程(七)——搭建一个完整的Java开发环境
作为一个Java程序员,配置一个java开发环境是必备的技能,今天给广大菜鸟初学者补上一课.环境的配置,大概就分三个1,JDK 2,Tomcat(或者其他的)3,eclipse(或者myeclipse ...
- 菜鸟学Java(十二)——搭建一个完整的Java开发环境
作为一个Java程序员,配置一个java开发环境是必备的技能,今天给广大菜鸟初学者补上一课.环境的配置,大概就分三个1,JDK 2,Tomcat(或者其他的)3,eclipse(或者myeclipse ...
- ubuntu 下搭建一个python3的虚拟环境(用于django配合postgresql数据库开发)
#安装python pip (在物理环境中安装) sudo apt-get install python-pip sudo apt-get install python3-pipsud ...
随机推荐
- attr 和 prop 的区别
在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了. 关于它们两个的区别,网上的答案很多.这里谈谈我的心得,我的心得很简单: ...
- How to solve “Dynamic Web Module 3.1 requires Java 1.7 or newer” in Eclipse
How to solve “Dynamic Web Module 3.1 requires Java 1.7 or newer” in Eclipse Last updated on June 20t ...
- mysql实现IP与整形互转
- Android下的几种时间格式转换
更多更全的工具类,请参考github上的Blankj/AndroidUtilCode 将毫秒转换为小时:分钟:秒格式 public static String ms2HMS(int _ms){ Str ...
- 一篇面经(BAT面试)(转)
0. 写在之前 首先呢我的面试经历和一些面霸和收割机的大神相比绝不算丰富,但我这三个月应该能代表很大一部分人的心路历程:从无忧无虑也无知的状态,然后遭遇挫败,跌入低谷,连续数天的黑暗,慢慢调整,逼着自 ...
- Java学习笔记(十八):static关键字
- jQueryEasyUI学习笔记
data-options 是jQuery Easyui的一个特殊属性.通过这个属性,我们可以对easyui组件的实例化可以完全写入到html中 data-options="region:'w ...
- c++ 面试题(算法类)
1,从无序的数据流中找到其中位数:(用大根堆和小根堆来实现) float getMidimum(vector<int>& nums) { priority_queue<int ...
- 图像处理项目——生成csv文件提高读取效率
利用pyhton脚本生成csv文件 *开发环境为windows PyCharm*使用的是pyhton脚本*生成人脸和人脸对应的标签的csv文件 一:主要步骤 1.载入对应路径2.提取每一张图片对应的位 ...
- 用java开发图形界面项目,如何实现从本地选择图片文件并以二进制流的形式保存到MySQL数据库,并重新现实到面板