01 文件读写

文件的读写包括常见的txt、Excel、xml、二进制文件以及其他格式的数据文本,主要用于本地数据的读写。

  1. 内置函数open(),Python默认的文件读写方法,推荐度:★★★

    1. open(file, mode='r', buffering=- 1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
  2. 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=, comments=’#’, delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0, encoding=’bytes’, max_rows=None, *, like=None)

numpy.savetxt(fname, X, fmt=’%.18e’, delimiter=’ ‘, newline=’\n’, header=’’, footer=’’, comments=’# ‘, encoding=None)

  1. 3. Pandas自带的read文件方法,例如ead_csvread_fwfread_table等,用于文本、Excel、二进制文件、HDF5、表格、SAS文件、SQL数据库、Stata文件等的读写,推荐度:★★★
  2. ```python
  3. 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)
  4. 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)
  5. 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)
  6. pandas.read_sql(sql, con, index_col=None, coerce_float=True, params=None, parse_dates=None, columns=None, chunksize=None)
  7. 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)
  8. 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)
  9. pandas.read_pickle(filepath_or_buffer, compression='infer', storage_options=None)
  10. 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

  • 简单的读取特定URL并获得返回的信息,推荐度:★★

    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

  • MySQL官方驱动连接程序,推荐度:★★★

    4. pymysql

  • MySQL连接库,支持Python3,推荐度:★★★

    5. cx_Oracle

  • Oracle连接库,推荐度:★★★

    6. psycopg2

  • Python编程语言中非常受欢迎的PostgreSQL适配器,推荐度:★★★

    7. pymongo

  • MongoDB官方驱动连接程序,推荐度:★★★

    8. HappyBase

  • HBase连接库,推荐度:★★★

    9. pyodbc

  • Python通过ODBC访问数据库的接口库,推荐度:★★★

    10. Jython

  • Python通过JDBC访问数据库的接口库,推荐度:★★★

    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数据科学库,推荐度:★★