对Python进行数据分析_关于Package的安装问题

yipeiwu_com7年前Python基础

一、为什么要使用Python进行数据分析?

python拥有一个巨大的活跃的科学计算社区,拥有不断改良的库,能够轻松的集成C,C++,Fortran代码(Cython项目),可以同时用于研究和原型的构建以及生产系统的构建。

二、Python的优势与劣势:

1.Python是一种解释型语言,运行速度比编译型数据慢。

2.由于python有一个全局解释器锁(GIL),防止解释器同时执行多条python字节码,所以python不适用于高并发、多线程的应用程序。

三、使用Python进行数据分析常用的扩展包。

目前初始阶段的学习主要涉及4个包的安装:numpy、scipy、pandas、matplotlib

我笔记本里安装的是Python2.7版本,在安装了pip和setuptools工具,关于pip和setuptools工具的安装详见相关笔记。

最初使用的安装命令很简单:

pip install pandas
pip install numpy
pip install scipy
pip install matplotlib

但是只安装成功了numpy和matplotlib两个包,pandas和scipy安装失败,查阅了相关资料发现可能是版本问题或者包的依赖相关。

最终在stack overflow发现了一个很棒的Python包提供网址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy

--这里要Mark一下,后边争取写一个爬虫,搞下来所有的包防止丢失。

以上网址是加州大学欧文分校提供的Python相关库的下载地址,修改#后边的名字可以进去其他包的下载页面,此页面中提供了安装某个包需要依赖的前置包的说明,非常友好。

依赖包说明类似:

Pandas, a cross-section and time series data analysis toolkit.
Requires numpy, dateutil, pytz, setuptools, and optionally numexpr, bottleneck, scipy, matplotlib, pytables, lxml, xarray, blosc, backports.lzma, statsmodels, sqlalchemy and other dependencies.

然后就是一堆的pandas下载地址。

最终根据各个包的相关性先安装了numpy+mkl的whl文件,然后是安装scipy最后是pandas。

安装的方法如下:

1.下载对应的4个包放在D:\目录下(很奇怪我笔记本是AMD64位的但是安装amd64版本的包报不支持的platform的错误,安装了32位的可以正常import)

2.cmd命令行进入D:\目录执行:pip install <包的全名>进行安装。(如果已安装了其他错误的版本,使用pip uninstall卸载)

最后使用如下类似命令查看包的安装位置:

 

以上这篇对Python进行数据分析_关于Package的安装问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python sorted函数的小练习及解答

前两天学习了一下socket编程,在向某大神请教问题时被嫌弃了,有一种还没学会走就想跑的感觉。大神说我现在的水平应该去做一些像是操作文件、序列号等的小练习来加深理解。下面是他给我出的小练...

pyinstaller打包程序exe踩过的坑

pyinstaller打包程序exe踩过的坑

基础环境 python 2.7.17 pyinstaller 3.5 安装pyinstaller pip install pyinstaller 坑,大坑,深坑 背景:...

Python实现备份文件实例

本文实例讲述了Python实现备份文件的方法,是一个非常实用的技巧。分享给大家供大家参考。具体方法如下: 该实例主要实现读取一个任务文件, 根据指定的任务参数自动备份. 任务文件的格式:...

python实现把两个二维array叠加成三维array示例

python实现把两个二维array叠加成三维array示例

遇到这样一个需求:程序中每次循环生成一个二维array,需要把每次循环的二维array叠加成一个三维的array,例如有如下两个矩阵: 组合成以下这种形式: 这样组合之后,有一个非常...

详解Python的hasattr() getattr() setattr() 函数使用方法

hasattr(object, name) 判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。 需要注意的是name要...