01 文件读写
文件的读写包括常见的txt、Excel、xml、二进制文件以及其他格式的数据文本,主要用于本地数据的读写。
内置函数open(),Python默认的文件读写方法,推荐度:★★★
open(file, mode='r', buffering=- 1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
numpy读写文件,Numpy自带的读写函数,用于文本、二进制文件读写,推荐度:★★★ ```python numpy.genfromtxt(fname, dtype=
, comments=’#’, delimiter=None, skipheader=0, skip_footer=0, converters=None, missing_values=None, filling_values=None, usecols=None, names=None, excludelist=None, deletechars=” !#$%&’()*+, -./:;<=>?@[\]^{|}~”, replace_space=’‘, autostrip=False, case_sensitive=True, defaultfmt=’f%i’, unpack=None, usemask=False, loose=True, invalid_raise=True, max_rows=None, encoding=’bytes’, *, like=None)
numpy.fromfile(file, dtype=float, count=- 1, sep=’’, offset=0, *, like=None)
numpy.loadtxt(fname, dtype=
numpy.savetxt(fname, X, fmt=’%.18e’, delimiter=’ ‘, newline=’\n’, header=’’, footer=’’, comments=’# ‘, encoding=None)
3. Pandas自带的read文件方法,例如ead_csv、read_fwf、read_table等,用于文本、Excel、二进制文件、HDF5、表格、SAS文件、SQL数据库、Stata文件等的读写,推荐度:★★★
```python
pandas.read_csv(filepath_or_buffer, sep=NoDefault.no_default, delimiter=None, header='infer', names=NoDefault.no_default, index_col=None, usecols=None, squeeze=None, prefix=NoDefault.no_default, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=None, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal='.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, encoding_errors='strict', dialect=None, error_bad_lines=None, warn_bad_lines=None, on_bad_lines=None, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None, storage_options=None)
pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None, squeeze=None, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, parse_dates=False, date_parser=None, thousands=None, decimal='.', comment=None, skipfooter=0, convert_float=None, mangle_dupe_cols=True, storage_options=None)
pandas.read_json(path_or_buf=None, orient=None, typ='frame', dtype=None, convert_axes=None, convert_dates=True, keep_default_dates=True, numpy=False, precise_float=False, date_unit=None, encoding=None, encoding_errors='strict', lines=False, chunksize=None, compression='infer', nrows=None, storage_options=None)
pandas.read_sql(sql, con, index_col=None, coerce_float=True, params=None, parse_dates=None, columns=None, chunksize=None)
pandas.read_table(filepath_or_buffer, sep=NoDefault.no_default, delimiter=None, header='infer', names=NoDefault.no_default, index_col=None, usecols=None, squeeze=None, prefix=NoDefault.no_default, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal='.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, encoding_errors='strict', dialect=None, error_bad_lines=None, warn_bad_lines=None, on_bad_lines=None, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None, storage_options=None)
pandas.read_xml(path_or_buffer, xpath='./*', namespaces=None, elems_only=False, attrs_only=False, names=None, encoding='utf-8', parser='lxml', stylesheet=None, compression='infer', storage_options=None)
pandas.read_pickle(filepath_or_buffer, compression='infer', storage_options=None)
pandas.read_html(io, match='.+', flavor=None, header=None, index_col=None, skiprows=None, attrs=None, parse_dates=False, thousands=',', encoding=None, decimal='.', converters=None, na_values=None, keep_default_na=True, displayed_only=True)
-
02 网络抓取和解析
1. urllib
-
2. urlparse
Python自带的URL解析库,可自动解析URL不同的域、参数、路径等,推荐度:★★★
3. HTMLParser
Python自带的HTML解析模块,能够很容易的实现HTML文件的分析,推荐度:★★★
4. requests
网络请求库,提供多种网络请求方法并可定义复杂的发送信息,推荐度:★★★
5. Beautiful Soup
网页数据解析和格式化处理工具,通常配合Python的urllib、urllib2等库一起使用,推荐度:★★★
6. Scapy
分布式爬虫框架,可用于模拟用户发送、侦听和解析并伪装网络报文,常用于大型网络数据爬取,推荐度:★★★
7.Selenium库
. selenium 是一套完整的web应用程序测试系统,包含了测试的录制,编写及运行和测试的并行处理,推荐度:★★★
03 数据统计分析与可视化
数据计算和统计分析主要用于数据探查、计算和初步数据分析等工作。数据可视化主要用于做数据结果展示、数据模型验证、图形交互和探查等方面。
1. numpy
NumPy是Python科学计算的基础工具包,很多Python数据计算工作库都依赖它,推荐度:★★★
2. scipy
Scipy是一组专门解决科学和工程计算不同场景的主题工具包,推荐度:★★★
3. pandas
Pandas是一个用于Python数据分析的库,它的主要作用是进行数据分析。Pandas提供用于进行结构化数据分析的二维的表格型数据结构DataFrame,类似于R中的数据框,能提供类似于数据库中的切片、切块、聚合、选择子集等精细化操作,为数据分析提供了便捷,推荐度:★★★
4. Matplotlib
Matplotlib是Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形,开发者可以仅需要几行代码,便可以生成多种高质量图形,推荐度:★★★
5. pyecharts
基于百度Echarts的强大的可视化工具库,其提供的图形功能众多,尤其对于复杂关系的展示能力较强,推荐度:★★★
6. seaborn
Seaborn是在Matplotlib的基础上进行了更高级的API封装,它可以作为Matplotlib的补充,推荐度:★★★
7. bokeh
Bokeh是一种交互式可视化库,可以在WEB浏览器中实现美观的视觉效果,推荐度:★★★
8. Plotly
Plotly提供的图形库可以进行在线WEB交互,并提供具有出版品质的图形,支持线图、散点图、区域图、条形图、误差条、框图、直方图、热图、子图、多轴、极坐标图、气泡图、玫瑰图、热力图、漏斗图等众多图形,推荐度:★★★
04 数据库连接
数据库连接可用于连接众多数据库以及访问通用数据库接口,可用于数据库维护、管理和增、删、改、查等日常操作。
1. SQLAlchemy
SQLAlchemy是Python SQL工具包和对象关系映射器,为应用程序开发人员提供了SQL的全部功能和灵活性控制,推荐度:★★
2. sqlite3
Python自带的模块,用于操作SQLite数据库,推荐度:★★★
3. mysql-connector-python
-
4. pymysql
-
5. cx_Oracle
-
6. psycopg2
Python编程语言中非常受欢迎的PostgreSQL适配器,推荐度:★★★
7. pymongo
-
8. HappyBase
-
9. pyodbc
-
10. Jython
-
05 自然语言处理和文本挖掘
自然语言处理和文本挖掘库主要用于以自然语言文本为对象的数据处理和建模。
1. jieba
结巴分词是国内流行的Python文本处理工具包,分词模式分为三种模式:精确模式、全模式和搜索引擎模式,支持繁体分词、自定义词典等,是非常好的Python中文分词解决方案,可以实现分词、词典管理、关键字抽取、词性标注等,推荐度:★★★
2. nltk
NLTK是一个Python自然语言处理工具,它用于对自然语言进行分类、解析和语义理解。目前已经有超过50种语料库和词汇资源,推荐度:★★★
3. pattern
Pattern是一个网络数据挖掘Python工具包,提供了用于网络挖掘(如网络服务、网络爬虫等)、自然语言处理(如词性标注、情感分析等)、机器学习(如向量空间模型、分类模型等)、图形化的网络分析模型,推荐度:★★★
4. gensim
Gensim是一个专业的主题模型(发掘文字中隐含主题的一种统计建模方法)Python工具包,用来提供可扩展统计语义、分析纯文本语义结构以及检索语义上相似的文档,推荐度:★★★
5. spaCy
spaCy是一个Python自然语言处理工具包,它结合Python和Cython使得自然语言处理能力达到了工业强度,推荐度:★★★
6. PyNLPI
PyNLPI是一个适合各种自然语言处理任务的集合库,可用于中文文本分词、关键字分析等,尤其重要的是其支持中英文映射,支持UTF-8和GBK编码的字符串等,推荐度:★★★
7. synonyms
中文近义词工具包,可用于自然语言理解的很多任务:文本对齐,推荐算法,相似度计算,语义偏移,关键字提取,概念提取,自动摘要,搜索引擎等。推荐度:★★★
06 图像和视频处理
图像处理和视频处理主要适用于基于图像的操作、处理、分析和挖掘,如人脸识别、图像识别、目标跟踪、图像理解等。
1. OpenCV
OpenCV是一个强大的图像和视频工作库。它提供了多种程序接口,支持跨平台(包括移动端)应用。OpenCV的设计效率很高,它以优化的C / C ++编写,库可以利用多核处理。除了对图像进行基本处理外,还支持图像数据建模,并预制了多种图像识别引擎,如人脸识别,推荐度:★★★
2. PIL/Pillow
PIL是一个常用的图像读取、处理和分析的库,提供了多种数据处理、变换的操作方法和属性。PIL仅支持到2.7版本且已经很久没有更新,一群志愿者基于PIL发布了新的分支Pillow。Pillow同时支持Python2和Python3并且加入很多新的功能,推荐度:★★
3. scikit-image
scikit-image(也称skimage)是一个图像处理库,支持颜色模式转换、滤镜、绘图、图像处理、特征检测等多种功能,推荐度:★★
07 音频处理
音频处理主要适用于基于声音的处理、分析和建模,主要应用于语音识别、语音合成、语义理解等。
1. TimeSide
TimeSide是一个能够进行音频分析、成像、转码、流媒体和标签处理的Python框架,可以对任何音频或视频内容非常大的数据集进行复杂的处理,推荐度:★★★
2. pydub
pydub支持多种格式声音文件,可进行多种信号处理(例如压缩、均衡、归一化)、信号生成(例如正弦、方波、锯齿等)、音效注册、静音处理等,推荐度:★★★
3. ossaudiodev
该模块支持访问OSS(开放声音系统)音频接口,推荐度:★★★
4. audioop
Python自带的函数,可实现对声音片段的一些常用操作,推荐度:★★
5. tinytag
tinytag用于读取多种声音文件的元数据,涵盖MP3、OGG、OPUS、MP4、M4A、FLAC、WMA、Wave等格式,推荐度:★★
6. audiolazy
audiolazy是一个用于实时声音数据流处理的库,支持实时数据应用处理、无限数据序列表示、数据流表示等,推荐度:★★
08 数据挖掘/机器学习/深度学习
数据挖掘、机器学习和深度学习等是Python进行数据建模和挖掘学习的核心模块。
1. Scikit-Learn
scikit-learn(也称SKlearn)是一个基于Python的机器学习综合库,内置监督式学习和非监督式学习机器学习方法,包括各种回归、聚类、分类、流式学习、异常检测、神经网络、集成方法等主流算法类别,同时支持预置数据集、数据预处理、模型选择和评估等方法,是一个非常完整、流行的机器学习工具库,推荐度:★★★
2. TensorFlow
TensorFlow 是谷歌的第二代机器学习系统,内建深度学习的扩展支持,任何能够用计算流图形来表达的计算,都可以使用 TensorFlow,推荐度:★★★
3. NuPIC
NuPIC是一个以HTM(分层时间记忆)学习算法为工具的机器智能平台。NuPIC适合于各种各样的问题,尤其适用于检测异常和预测应用,推荐度:★★★
4. Orange
Orange通过图形化操作界面,提供交互式数据分析功能,尤其适用于分类、聚类、回归、特征选择和交叉验证工作,推荐度:★★★
5. theano
Theano是非常成熟的深度学习库。它与Numpy紧密集成,支持GPU计算、单元测试和自我验证,推荐度:★★★
6. PyLearn2
PyLearn2是基于Theano的深度学习库,它旨在提供极大的灵活性,并使研究人员可以进行自由可控制,参数和属性的灵活、开放配置是亮点,推荐度:★★★
7. PyTorch
PyTorch是FaceBook推出的深度学习框架,它基于Python(而非lua)产生,它提供的动态计算图是显著区别于Tensorflow等其他学习框架的地方。推荐度:★★
8. Caffe2
Cafffe2也是FaceBook推出的深度学习框架,相比于PyTorch 更适合于研究,Caffe2 适合大规模部署,主要用于计算机视觉,它对图像识别的分类具有很好的应用效果,推荐度:★★
9. keras
Keras是一个用Python编写的高级神经网络API,能够运行在TensorFlow或者Theano之上,它的开发重点是实现快速实验,推荐度:★★
09 交互学习和集成开发
交互学习和集成开发主要用来做Python开发、调试和集成之用,包括Python集成开发环境和IDE。
1. PyCharm
PyCharm带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制并可集成IPython、系统终端命令行等,在PyCharm里几乎就可以实现所有有关Python工作的全部过程,推荐度:★★★
2. visual studio code
Visual Studio Code(简称“VS Code” )是Microsoft开发的运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代Web和云应用的跨平台源代码编辑器。它具有对JavaScript,TypeScript和Node.js的内置支持,并具有丰富的其他语言(例如C++,C#,Java,Python,PHP,Go)和运行时扩展的生态系统。推荐度:★★★
3. IPython/ Jupyter
IPython 是一个基于Python 的交互式shell,比默认的Python shell 好用得多,支持变量自动补全、自动缩进、交互式帮助、魔法命令、系统命令等,内置了许多很有用的功能和函数。从IPython4.0开始,IPython衍生出了IPython和Jupyter两个分支。在该分支正式出现之前,IPython其实已经拥有了ipython notebook功能,因此,Jupyter更像是一个ipython notebook的升级版。推荐度:★★★
4. Spyder
Spyder是一个开源的Python IDE,由IPython和众多流行的Python库的支持,是一个具备高级编辑、交互式测试、调试以及数字计算环境的交互式开发环境,推荐度:★★
5. Anaconda
Anaconda,是一个开源的Python发行版本,内置python,高度集成python数据科学生态 ,拥有强大的包管理工具-conda,可用超过600个python数据科学库,推荐度:★★