Python入门
本笔记用于记录学习过程,若有问题,欢迎交流。
[TOC]
常用数据分析库Numpy、Scipy、Pandas和matplotlib。
常用的高级数据分析库ntlk、igraph、scikit-learn。
pip
pip是类似yum的工具,安装Python包非常方便。
Numpy
Numpy提供常用的数值数组、矩阵等函数.
NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运
算,此外也针对数组运算提供大量的数学函数库。
官网链接:http://www.numpy.org/
• 作者介绍
• Jim Hugunin: http://www.linkedin.com/in/jimhugunin
• Travis Oliphant: http://www.linkedin.com/in/teoliphant
基本功能:
快速高效的多维数组对象ndarray
• 用于对数组执行元素级计算以及直接对数组执行数学运算的函数
• 用于读写硬盘上基于数组的数据集的工具
• 线性代数运算、傅里叶变换,以及随机数生成
• 用于将C、C++、Fortran代码集成到Python的工具
• 除了为Python提供快速的数组处理能力,NumPy在数据分析方面还有另外一
个主要作用,即作为在算法之间传递数据的容器.
效率对比:
• 三种数据结构:list / array / numpy.array
• 三种方法求和:for / sum / numpy.sum
• 例子代码:extra/perf_compare.py
我们一般用到的功能比较单一。
Scipy
官方网址:https://docs.scipy.org/doc/numpy/reference/
Scipy是一种使用Numpy来做高等数学、信号处理、优化、统计的拓展包。
Numpy提供了高性能的多维数组,以及计算和操作数组的基本工具。SciPy基于Numpy,提供了大量的计算和操作数组的函数,这些函数对于不同类型的科学和工程计算非常有用。
熟悉SciPy的最好方法就是阅读文档。我们会强调对于本课程有用的部分。
Pandas
pandas = pannel data + data analysis
Pandas是一种构建与Numpy的高级数据结构和精巧工具,快速简单的处理数据。
• 简介:Pandas是python的一个数据分析包,最初由AQR Capital
Management于2008年4月开发,并于2009年底开源出来,目前由专注于
Python数据包开发的PyData开发team继续开发和维护,属于PyData项目的
一部分。Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为
时间序列分析提供了很好的支持。
支持自动或明确的数据对齐的带有标签轴的数据结构。
整合的时间序列功能。
以相同的数据结构来处理时间序列和非时间序列。
支持传递元数据(坐标轴标签)的算术运算和缩减。
灵活处理丢失数据。
在常用的基于数据的数据库(例如基于SQL)中的合并和其它关系操作。
• 作者介绍:Wes McKinney
基本功能
• 开发pandas时提出的需求
• 具备按轴自动或显式数据对齐功能的数据结构
• 集成时间序列功能
• 既能处理时间序列数据也能处理非时间序列数据的数据结构
• 数学运算和约简(比如对某个轴求和)可以根据不同的元数据(轴编号)执行
• 灵活处理缺失数据
• 合并及其他出现在常见数据库(例如基于SQL的)中的关系型运算
数据结构: Series和DataFrame
matplotlib
matlpotlib是python的绘图库。
import matplotlib.pyplot as plt
plt.plot([1,2,3])
plt.ylabel('some numbers')
plt.show()
import seaborn as sns
sns.set(color_codes=True)
import numpy as np
x = np.random.normal(size=100)
sns.distplot(x);
ntlk
Python上著名的自然语言处理库
自带语料库,词性分类库
自带分类,分词,等等功能
强大的社区支持
还有N多的简单版wrapper
ntlk(natural Language Toolkit)自然语言处理工具包
安装:
pip install -U ntlk
应用:
文本提取
词汇切分1
词频分析
词袋模型
情感分析
igraph
igraph:图计算和社交网络分析。
Python社交网络分析igraph
用pip安装如下:
pip install -U python-igraph
用conda安装如下:
conda install -c marufr python-igraph=0.7.1.post6
Scikit-learn
Scikit-learn是建立在Scipy之上的一个用于机器学习的Python模块。