python 官方英文文档https://docs.python.org python 官方中文文档https://docs.python.org/zh-cn/
主要是为了写作业,收集资料的时候顺便把以前在onenote上写得乱七八糟的笔记收整一遍。
1. pandas
概述 Pandas 基于Numpy开发,Python的核心数据分析支持库,可以与其他第三方科学计算支持库完美集成。 提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。处理数据一般分为几个阶段:数据整理与清洗、数据分析与建模、数据可视化与制表。Pandas 是处理数据的理想工具。 特点 Pandas 主要的数据结构为Series(一维数据)和DataFrame(二维数据)。
适用于处理以下类型的数据:
- 与 SQL 或 Excel 表类似的,含异构列的表格数据;
- 有序和无序(非固定频率)的时间序列数据;
- 带行列标签的矩阵数据,包括同构或异构型数据;
- 任意其它形式的观测、统计数据集, 数据转入 Pandas 数据结构时不必事先标记。
相关链接 十分钟入门 Pandas | Pandas 中文 (pypandas.cn) 用法速查表(pdf)
2. numpy
概述 NumPy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。 特点 NumPy库的核心是 ndarray 对象。它封装了python原生的同数据类型的 n 维数组,为了保证其性能优良,其中有许多操作都是代码在本地进行编译后执行的。 NumPy数组和原生Python Array(数组)之间有几个重要的区别:
- NumPy 数组在创建时具有固定的大小,与Python的原生数组对象(可以动态增长)不同。更改ndarray的大小将创建一个新数组并删除原来的数组。
- NumPy 数组中的元素都需要具有相同的数据类型,因此在内存中的大小相同。 例外情况:Python的原生数组里包含了NumPy的对象的时候,这种情况下就允许不同大小元素的数组。
- NumPy 数组有助于对大量数据进行高级数学和其他类型的操作。通常,这些操作的执行效率更高,比使用Python原生数组的代码更少。
- 越来越多的基于Python的科学和数学软件包使用NumPy数组; 虽然这些工具通常都支持Python的原生数组作为参数,但它们在处理之前会还是会将输入的数组转换为NumPy的数组,而且也通常输出为NumPy数组。
相关链接 快速入门教程 | NumPy 中文
3. sklearn
概述 sklearn (scikit-learn) 是基于 Python 语言的机器学习工具,也是简单高效的数据挖掘和数据分析工具 可供在各种环境中重复使用,基于 NumPy ,SciPy 和 matplotlib开发,开源,可商用,有-BSD许可证。 相关链接 sklearn中文文档(需要关注公众号获得验证码) 非常详细的sklearn介绍
附上分类模型建模过程作为示例
4. matplotlib
概念 Matplotlib是一个Python 2D绘图库,它以多种硬拷贝格式和跨平台的交互式环境生成出版物质量的图形。 Matplotlib可用于Python脚本,Python和IPython Shell、Jupyter笔记本,Web应用程序服务器和四个图形用户界面工具包。Matplotlib 尝试使容易的事情变得更容易,使困难的事情变得可能。 只需几行代码就可以生成图表、直方图、功率谱、条形图、误差图、散点图等。 特点 为了简单绘图,该 pyplot 模块提供了类似于MATLAB的界面,尤其是与IPython结合使用时。可以通过面向对象的界面或MATLAB用户熟悉的一组功能来完全控制线型,字体属性,轴属性等。Matplotlib附带了几个附加工具包, 包括3d绘图工具 mplot3d, 轴辅助工具 axes_grid1 和轴辅助工具 axisartist。matplotlib.pylot是绘制各类可视化图形的命令字库,相当于快捷方式。
- 散点图plt.scatter相关参数
- 条形图函数plt.bar参数详解
- 图例绘制plt.legend参数详解
相关链接 各种可视化类 matplotlib色彩映射
##我个人比较喜欢这一版配色: 附上用plt画的几个图,代码如需可私聊
5. PIL
概念 Python Imaging Library ( PIL ) 给 Python 增加了图像处理能力。这个库提供了广泛的文件格式支持,高效的内部展现,以及十分强大的图像处理能力。可以用于:图像存储、图像显示、图像处理。 功能
- 图像存储 PIL。设计用于图像归档和图像批量处理,你可以使用它建立缩略图,转换格式,打印图片等等。现在的版本可以验证和读取大量的图片格式。写入有意设计为只能写入常用的文件格式。
- 图像显示。现在的版本包含了 Tk PhotoImage 和 BitmapImage 接口, 以及 Windows DIB interface,这有助于在 Windows 下使用。为了方便测试,还提供了 show() 方法,可以保存图像到磁盘并显示。
- 图像处理。这个库包含了基本的图像处理功能,包括点操作,使用内置卷积内核过滤,色彩空间转换。这个库还支持更改图像大小、旋转、自由变换。有一个直方图方法允许统计图像,这可以用于对比度增强和全局统计分析。
相关链接 PIL快速入门 注意 Pillow 是对 PIL 的功能增加,想要在 Pillow 下运行 PIL 的代码,只需要: 把这个: import Image 修改成: from PIL import Image 【注意,:py:mod:_imaging 模块已经被移除,现在可以这样导入: from PIL.Image import core as _imaging 另外,图像插件导入机制已经改变。Pillow 不会自动导入以 ImagePlugin.py 结尾的文件。需要手动导入。】
6. WordCloud
概念 WordCloud优秀的词云展示第三方库,词云以词语为基本单位,更加直观和艺术的展示文本。wordcloud库把词云当作一个WordCloud对象,wordcloud.WordCloud()代表一个文本对应的词云,可以根据文本中词语出现的频率等参数绘制词云的形状,同时其尺寸和颜色都可以设定。 相关链接 详细介绍使用wordCloud设计词云
7. datetime
概念 用于操作日期时间,Python提供了多个内置模块类似功能,像 calendar,time,datetime。time模块提供的接口与C标准库 time.h 基本一致。相比于 time 模块,datetime模块的接口则更直观、更容易调用。 特点
- datetime模块定义了两个常量:
? datetime.MINYEAR ? datetime.MAXYEAR 这两个常量分别表示datetime 所能表示的最小、最大年份。其中,MINYEAR = 1,MAXYEAR = 9999。 - datetime模块定义了下面这几个类:
? datetime.date:表示日期的类。常用的属性有year, month, day; ? datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond; ? datetime.datetime:表示日期时间。 ? datetime.timedelta:表示时间间隔,即两个时间点之间的长度。 ? datetime.tzinfo:与时区有关的相关信息。 【注:以上列举的这些类型的对象都是不可变(immutable)的。】
相关链接 python datetime模块参考手册)
8. math
概念 python内置模块,提供对C标准定义的数学函数的访问。 这些函数不适用于复数;如果需要计算复数,需要使用 cmath 模块中的同名函数。该模块提供包括数论与表示函数、幂函数与对数函数、三角函数、角度转换、双曲函数、常量等。除非另有明确说明,否则所有返回值均为浮点数。 相关链接 math中文文档,3.6.15
9. collections
概念 这个模块实现了特定目标的容器,以提供Python标准内建容器 dict , list , set , 和 tuple 的替代选择。 相关链接 collection,容器数据类型,3.6.15版本python
10. os
概念 os模块提供了一些方便使用操作系统相关功能的函数。 读写一个文件,open(),操作路径,使用os.path 模块,在命令行上读取所有文件中的所有行, 使用fileinput 模块,有关关创建临时文件和目录的方法,使用 tempfile 模块,对于高级文件目录处理,使用 shutil 模块。
关于这些函数的适用性的说明: ? 所有 Python 内建的操作系统相关的模块的设计都是为了使得在同一功能可用的情况下,保持接口的一致性;例如,函数 os.stat(path) 以相同的格式返回关于 path 的统计信息(这个函数同时也是起源于 POSIX 接口)。 ? 针对特定的操作的拓展同样在可用于 os 模块,但是使用它们必然会对可移植性产生威胁。 ? 所有接受路径或文件名的函数都同时支持字节串和字符串对象,并在返回路径或文件名时使用相应类型的对象作为结果。 ? “可用性:Unix”说明这个函数在Unix系统中很常见。 它不声明它在特定操作系统上的存在。 ? 如果没有单独说明,所有声称“可用性:Unix”的函数都在基于Unix核心的Mac OS X上得到支持。 【注解:如果文件名和路径无效或不可访问,或者其他具有正确类型但操作系统不接受的参数,则此模块中的所有函数都会引发OSError 】
相关链接 os—操作系统接口模块—python3.6.15文档
11. calendar
概念 calender模块可以输出像 Unix cal 那样的日历,还提供了其它与日历相关的实用函数。 默认情况下,一周起始星期一,一周结束星期天(按照欧洲惯例)。也 可以使用 setfirstweekday() 方法设置一周的第一天为星期天或者其它任意一天。 使用整数作为指定日期的参数。 相关链接 calender—日历相关函数—python3.6.15
12. jieba
概念 中文分词模块“结巴”,旨在做最好的 Python 中文分词组件。 特点
- 支持四种分词模式: 精确模式,全模式,搜索引擎模式,paddle模式。
- 支持繁体分词
- 支持自定义词典
- MIT 授权协议
功能 分词、添加自定义词典、关键词提取、词性标注、并行分词、用于搜索引擎、使用命令行分词等。 相关链接 中文分词模块jieba github
13. SnowNLP
概念 SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而开发的一个方便处理中文的自然语言处理类库,并且和TextBlob不同的是,这里没有用NLTK,并且自带了一些训练好的字典。 【注意本程序都是处理的unicode编码,所以使用时请自行decode成unicode】 特点 中文分词(Character-Based Generative Model)、词性标注(TnT 3-gram 隐马)、情感分析(现在训练数据主要是买卖东西时的评价)、文本分类(Naive Bayes)、转换成拼音(Trie树实现的最大匹配)、繁体转简体(Trie树实现的最大匹配)、提取文本关键词(TextRank算法)、提取文本摘要(TextRank算法)、tf,idf、Tokenization(分割成句子)、文本相似(BM25)、支持python3。 相关链接 snownlp_github开源介绍 NLP之中文自然语言处理工具库:SnowNLP(情感分析/分词/自动摘要)
14. json
概念 JSON编码和解码器。JSON (JavaScript Object Notation),由 RFC 7159 (which obsoletes RFC4627) 和 ECMA-404 指定,是一个受 JavaScript的对象字面量语法启发的轻量级数据交换格式,尽管它不仅仅是一个严格意义上的 JavaScript 的字集。json 提供了与标准库marshal 和 pickle 相似的API接口。 特点 实际上 json的格式和 python中的字典很像,也是由键值对组成,但是 python中的值可以为任何对象(列表、字典、字符串、数字等等),而 json中的值只能是数组(列表)、字典、字符串、数组、布尔值中的一中或几种。 json库一共有三个方法,分别是 dump、dumps、load、loads。其中 dump和 dumps是用来把把字典和数组转换为 json格式的,dump把转换结果直接写入文件,dumps返回字符串。load和 loads是把 json格式的数据转换为字典格式,load直接从 json文件中读取数据并返回字典对象,loads把字符串形式的 json数据转换成字典格式。 相关链接 python爬虫系列之数据的存储(一):json库的使用
15. xlwt
概念 xlwt是一个用于将数据和格式化信息写入旧版本Excel文件(例如.xls)的库。简单的写入功能可用xlwt模块,写入功能的难点在于写入合并的单元格。单元格的下标都是从0开始。 相关链接 xlwt&xlrt的具体简单应用
|