Python重要的库

低智商的善良,不如高智商的冷漠——这是一个让人恶心的坏命题。是的,面对复杂的世事,我们需要判断力,爱心拒绝被消费,但不是让你对苦难无所作为无动于衷,不是让你失去同情悲悯之心。应该批判的是说谎者,而不是把矛头指向人们单纯的善良。欺骗应受惩罚,不能因为欺骗就给自己的冷漠找到冠冕堂皇的借口,无论如何不能失去善良的能力。 《中国青年报》

Python教程

扁平结构要比嵌套结构好。——Zen of Python
  Python重要库的中文文档地址:《一译中文文档》

  • 玩蛇网
  • Python 中文学习大本营

安装特定版本

如何使用pip安装特定版本的python第三方包

pip install package==version
#package:包名;version:版本号。如pip install tensorflow-gpu==1.4.0即是安装1.4.0版本的gpu版本的tensorflow

Numpy

精通面向数组编程和思维方式是成为Python科学计算大牛的一大关键步骤。——《利用Python进行数据分析》

Numpy(Numerical Python)是Python科学计算的基础包。具有以下功能:

  • 快速高效的多维数组对象ndarray
    • ndarray表示的是N维数组对象。
      • ndarray是一个通用的同构数据多维容器,也就是说,其中的元素必须都是相同类型的。
      • 每个数组里面都有一个shape和一个dtype
        • shape表示各个维度大小的元组
        • dtype表示数组数据类型
          • 除非是显示的设置dtype,否则np.array会尝试推断出数组的数据类型
    • 一个具有矢量算数运算和复杂广播(broadcast)能力的快速且节省空间的多维数组。
  • 用于对数组执行元素级别计算以及直接对数组执行数学运算的函数
  • 用于读写硬盘上基于数组的数据集的工具
  • 线性代数运算、傅里叶变换,以及随机数生成的功能
  • 用于将C、C++、Fortran代码集成到Python的工具
  • 作为在算法之间传递数据的容器

Numpy数组在存储和处理数据要比内置的Python数据结构高效得多。此外,由低级语言(比如C和Fortran)编写的库可以直接操作Numpy数组中的数据,无需进行任何数据复制工作。

查看Numpy的版本

python -c "import numpy; print numpy.version.version"

方法

数组创建函数列表:

函数名 说明
zeros 创建指定长度或形状全为0的数组。
ones 创建指定长度或者形状全为1的数组。
empty 创建一个没有任何具体值的数组。
arange 是基于Python原版range函数改进的数组版本。
array 将输入的数据(可以是列表、元组、数组、其他的序列数组)转换为Numpy的ndarray。要是不指定dtype,那么就由该方法推断出dtype。默认直接复制数据。
asarray 将输入的数据转换为Numpy的ndarray。如果输入本身是ndarray就不进行复制操作了。
eye 创建一个N×N的单位矩阵,主对角线为1,其余为0。
identity 创建一个N×N的单位矩阵,主对角线为1,其余为0。

Python重要的库_第1张图片
Python重要的库_第2张图片

一元函数

函数名称 说明
abs 计算整数、浮点数或者是复数的绝对值。
fabs 计算整数、浮点数的绝对值(比abs快)。
sqrt 计算各个元素的平方根,相当于arr**0.5。
square 计算各个元素的平方,相当于arr**2。
exp 计算各个元素的指数e*。
log 自然对数。
log10 底数为10的对数。
log2 底数为2的对数。
log1p 底数为(1+x)的对数。
sign 计算各个元素的正负号:1(正数)、-1(负数)、0(零)。
ceil 计算各元素的ceiling值,即大于等于该值的最小正数。
floor 计算个元素的floor值,即小于等于该值的最大正数。
rint 将个元素四舍五入到最接近的整数,保留dtype。
modf 将数组的小数和整数部分以两个独立数组的形式返回。
isnan 返回一个表示“哪些值是NaN(这不是一个数字)”的布尔值类型。
isfinite 返回一个表示“哪些元素是有穷的(非inf,非NaN)”的布尔值数组。
isinf 返回一个表示“哪些元素是无穷的”的布尔值数组。
cos、sin、tan 三角函数。
cosh、sinh、tanh 双曲型三角函数。
arccos、arcsin、arctan 反三角函数。
arccosh、arcsinh、arctanh 双曲型反三角函数。
logical_not 计算各个元素not x的真值,相当于-arr。
  • 说明:
    • NaN表示not a number,即非数字。

二元函数

函数名称 说明
add 将数组中对应的元素相加。
subtract 从第一个数组中减去第二个数组中元素。
multiply 数组元素相乘。
divide 除法。
floor_divide 向下取整除法。
power 对第一个数组中的元素A,根据第二个数组中的相应元素B,计算A^B的值。
maxmum 取最大值。
fmax 除NaN外的最大值。
minimum 取最小值。
fmin 除NaN外的最小值。
mod 取余数。
copysign 将第二个数组中的值的符号复制给第一个数组中的值。
greater 大于。
greater_equal 大于等于。
less 小于。
less_equal 小于等于。
equal 等于。
not_equal 不等于。
logical_and 逻辑与(&)。
logical_or 逻辑或(|)。
logical_xor 逻辑异或(^)。

基本数组统计方法

名称 说明
sum 对数组中全部或者是某个轴向的所有元素进行求和。零长度的数组的sum值为0。
mean 算术平均值。零长度的数组的mean值为NaN。
std 标准差。
自由度可调整(默认为n)。
var 方差。
自由度可调整(默认为n)。
min 返回数组中的最小元素。
max 返回数组中的最大元素。
argmin 返回数组中最小元素的索引。
argmax 返回数组中最大元素的索引。
median 返回数组的中位值。
注意,该方法不会对数组进行排序。
数组个数为奇数个返回最中间一个数字,偶数个返回最中间两位的均值。
ravel 将多维数组展平多一维数组。
cov 协方差。

布尔型数组方法

名称 说明
any 数组中是否存在一个或者多个True。
如果存在就返回True,反之,返回False。
all 数组中是否全部为True。
如果所有数组中所有元素都是True就返回True,反之,返回False。

数组集合运算

名称 说明
unique(x) 有序返回x中所有的唯一元素。
intersect1d(x, y) 有序返回x和y中的公共元素。
union1d(x, y) 有序返回x和y的并集。
in1d(x, y) 返回一个表示“x的元素是否包含于y”的布尔型数组。存在用True表示,不存在用False表示。
setdiff1d(x, y) 返回存在于x但是不存在于y的集合差
setxor1d(x, y) 返回存在于一个数组中但是不同时存在于两个数组中的元素的对称差集合。

数组操作

名称 说明
searchsorted searchsorted函数为指定的插入值返回一个在有序数组中的索引位置,从这个位置插入可以保持数组的有序性。
extract 从数组中抽取元素。
cumsum 所有元素的累计和。
cumprod 所有元素的累计积。

矩阵

名称 说明
mat 创建一个矩阵。
注意:mat函数创建矩阵时,若输入已为matrix或ndarray对象,则不会为它们创建副本。因此,调用mat函数和调用matrix(data, copy=False)等价。
T 转置。mat.T
I 逆矩阵。mat.I
bmat 分块矩阵,可以用小的矩阵来创建大的矩阵。矩阵A,矩阵B,矩阵C,C=bmat("A B;B A")

线性代数

线性代数是数学的一个重要分支。numpy.linalg模块包含线性代数的函数。使用这个模块,我们可以计算逆矩阵、求特征值、解线性方程组以及求解行列式等。

名称 说明
dot 矩阵乘法。
用法:x.dot(y)
或者是np.dot(x, y)
diag 以一维数组的形式返回方阵中的对角线(或者非对角线)元素,或将一维数组转换为方针(非对角线元素为0)。
trace 计算对角线元素的和。
det 计算矩阵行列式。
eig 计算矩阵的本征值和本征向量。
inv 计算矩阵的逆,即求逆矩阵。
pinv 计算矩阵的Moore-Penrose伪逆。
qr 计算QR分解。
svd 计算奇异值分解(SVD)。
solve 解线性方程组Ax=b,其中A是一个方阵。
lstsq 计算Ax=b的最小二乘积。

随机数

这些是numpy.random的函数:

名称 说明
seed 确定随机数生成器的种子。
permutation 返回一个序列的随机排列或返回一个随机排列的范围。
shuffle 对一个序列就地随机排序。
rand 产生均匀分布的样本值。
randint 从给定的上下限范围内随机选取整数。
randn 产生正态分布(平均值为0,标准差为1)的样本值,类似于MATLAB接口。
binomial 产生二项分布的样本值。
normal 产生正态(高斯)分布的样本值。
beta 产生Beta分布的样本值。
chisquare 产生卡方分布的样本值。
gamma 产生Gamma分布的样本值。
uniform 产生[01)中均匀分布的样本值。

专用函数

名称 说明
sort 函数返回排序后的数组。
lexsort 函数根据键值的字典序进行排序。
argsort 函数返回输入数组排序后的下标。

ndarray

名称 说明
sort 函数可对数组进行原地排序。
msort 函数沿着第一个轴排序。
sort_complex 函数对复数按照先实部后虚部的顺序进行排序。

金融函数

名称 说明
fv 函数计算所谓的终值(future value),即基于一些假设给出的某个金融资产在未来某一时间点的价值。
pv 函数计算现值(present value),即金融资产当前的价值。
npv 函数返回的是净现值(net present value),即按折现率计算的净现金流之和。
pmt 函数根据本金和利率计算每期需支付的金额。
irr 函数计算内部收益率(internal rate of return)。 内部收益率是是净现值为0时的有效利率,不考虑通胀因素。
mirr 函数计算修正后内部收益率(modified internal rate of return),是内部收益率的改进版本。
nper 函数计算定期付款的期数。

API文档

  • Numpy1.13.dev0文档

Pandas

Pandas(Python Data Analysis Library)是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的(让以Numpy为中心的应用变得更加简单)。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

数据结构 说明
Series 一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。
如果传入的数据找不到对应的列,就将结果置为NaN。
Time- Series 以时间为索引的Series。
DataFrame 二维的表格型数据结构。很多功能与R中的data.frame类似。可以将DataFrame理解为Series的容器。以下的内容主要以DataFrame为主。
如果传入的列在数据中找不到,就会产生NA值。
如果赋值是一个Series,就会精确匹配DataFrame中的索引,并且所有的空位都会被填充NaN。
Panel 三维的数组,可以理解为DataFrame的容器。

Pandas兼具Numpy高性能的数组计算功能以及电子表格和关系型数据库(如SQL)灵活的数据处理功能。它提供了复杂精细的索引功能,以便更为便捷地完成重塑、切片和切块、聚合以及选取数据子集等操作。

Series

Series的字符串的表现形式为:索引在左边,值在右边。
  Series的最重要的一个功能就是它在算术运算中会自动对齐不同索引的数据。
  Series的索引切片和原Python的切片是不一样的,这里的test['a':'c']中ac都是包含的,而原Python中的切片中c是不包含的。

DataFrame

DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等等)。
  DataFrame可以既有行索引又有列索引,他可以被看做是由Series组成的字典(共用同一个索引)。跟其他类似的数据结构相比(如R的data.frame),DataFrame中面向行和面向列的操作基本上是平衡的。其实,DataFrame中的数据是以一个或者多个二维块存放的(而不是列表、字典或者是别的一维数据结构)。
  注意:虽然DataFrame是以二维结构保存数据的,但你仍然可以轻松地将其表示为更高维度的数据(层次化索引的表格型结构,这是Pandas中许多高级数据处理功能的关键要素)。
  我们可以通过类似字典标记的方式或者属性的方式,获取DataFrame中的一个Series,比如frame['name']这种形式。
  注意:返回的Series拥有原DataFrame相同的索引,且其name属性也已经被相应的设置好了。行也可以通过位置或者名称的方式进行获取,比如用索引字段ix。
  注意:通过索引方式返回的列只是相应数据的视图而已,并不是副本。因此,对返回的Series所做的任何修改全部都会反映到源DataFrame上。通过Series的copy方法即可显式地复制列。

Index的方法和属性

名称 说明
append 连接另一个Index对象,产生一个新的Index。
diff 计算差集,并得到一个Index。
intersection 计算交集。
union 计算并集。
delete 删除索引i处的元素,并得到新的Index。
drop 删除传入的值,并得到新的Index。
insert 将元素插入到索引i处,并得到新的Index。
is_monotonic 当各个元素大于等于前一个元素的时候,返回True。
is_unique 当Index唯一的时候,返回True。
unique 返回在数组中Index唯一的元素构成的数组。

reindex

reindex函数的参数列表

参数 说明
index 用作索引的新序列。既可以是Index实例,也可以是其他序列型的Python数据结构。Index会被完全使用,就像没有任何复制一样。
method 插值(填充)方式,具体参数见下面表格。
fill_value 在重新索引的过程中,需要引入缺失值是使用的替代值。
limit 前向或者后向填充时的最大填充量。
level 在MultiIndex的指定级别上匹配简单索引,否则选取其子集。
copy 无论如何复制,默认为True;如果是False,则新旧相等的话就不复制了。

reindex函数method参数

参数 说明
ffill 前向填充值。
pad 前向搬运值。
bfill 后向填充值。
backfill 后向搬运值。

Python重要的库_第3张图片
Python重要的库_第4张图片

算术方法

方法 说明
add 加法
sub 减法
div 除法
mul 乘法

约简方法的常用选项

选项 说明
axis 约简的轴。DataFrame的行用0表示,列用1表示。
skipna 排除缺失值,默认值为True。
level 如果轴是层次化索引的(即MultiIndex),则根据level分组约简。

描述统计方法

方法 说明
count 非NA值的数量。
describe 针对Series或者各个DataFrame列计算汇总统计。
min 最小值。
max 最大值。
argmin 计算能够获取到最小值的索引位置。(整数)
argmax 计算能够获取到最大值的索引位置。(整数)
idxmin 计算能够获取到最小值的索引值。
idxmax 计算能够获取到最大值的索引值。
quantile 计算样本的分位数(0到1)。
sum 值的总和。布尔值会被强制转换为1(True)和0(False)。
mean 值的平均值。
median 值的算术中位数。(50%中位数)
mad 根据平均值计算平均绝对离差。 |
var 样本值的方差。
std 样本值的标准差。
skew 样本值的偏度(三阶矩)。
kurt 样本值的峰度(四阶矩)。
cumsum 样本值的累积和。布尔值会被强制转换为1(True)和0(False)。
cummin 样本值的累计最大值。 布尔值会被强制转换为1(True)和0(False)。
cummax 样本值的累计最小值。布尔值会被强制转换为1(True)和0(False)。
cumprod 样本值的累计积。布尔值会被强制转换为1(True)和0(False)。
diff 计算一阶差分(对时间序列很有用)。
pct_change 计算百分数变化。

NA处理方法

方法 说明
dropma 根据各个标签中是否存在缺失数据对轴标签进行过滤,可通过阀值调节对缺失值的容忍度。
在DataFrame中,dropna默认丢弃任何含有缺失值的行。
fillna 用指定值或者插值方法(如ffill或者是bfill)填充缺失数据。使用方法:fillna(0)
fillna默认返回新的对象,但也可以对现有对象进行就地修改(使用参数inplace=True)。
isnull 返回一个含有布尔值的对象,这些布尔值表示哪些值是缺失值NA,该对象的类型与源类型一样。
notnull isnull的否定式。

解析函数

以下将文本数据转换为DataFrame时所用到的一些技术,这些函数的选项可以分为以下的几个大类:
  索引:将一个或者多个列当做返回的DataFrame处理,以及是否从文件、用户获取列名。
  类型推断数据转换:包括用户定义值的转换、缺失值标记列表等等。
  日期解析:包括组合功能,比如将分散在多个列中的日期时间信息组合成结果中的单个列。
  不规整数据问题:跳过一些行、页脚、注释或者其他不重要的东西(比如由成千上万个逗号隔开的数值数据)。

函数 说明
read_csv 从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符是逗号。
read_table 从文件、URL、文件型文件中加载带分隔符的数据。默认分隔符是制表符(’\t’)。
read_fwf 读取定宽格式的数据(也就是说没有分隔符)。
read_clipboard 读取剪切板中的数据,可以看做read_table的剪切板。在将网页转换为表格的时候很有用。

fillna函数的参数

参数 说明
value 用于填充缺失值的标量值或者字典对象。
method 插值方式。如果函数调用时未指定其他参数的时候,默认为“ffill”。
axis 待填充的轴,默认axis=0。
inplace 修改调用者对象而不产生副本。
limit (对于前向或者后向填充)可以连续填充的最大数量。

read_csv和read_table函数的参数

参数 说明
path 表示文件系统的位置、URL、文件型对象的字符串。
sep 用于对行中各字段进行拆分的字符序列或者正则表达式。
比如用于保存数据的时候,可以指定seq来自定义分隔符。
na_rep 指定缺失值保存格式(默认是空字符串)。
delimiter 用于对行中各字段进行拆分的字符序列或者正则表达式。
header 用作列名的行号。默认是0(第一行),如果没有header行就应该设置为None。
index_col 用作索引的列编号或者列号。可以是单个名称/数字或者由多个名称/数字组成的列表(层次化索引)。
names 用于结果的列名列表,结合header=None。
skiprows 需要忽略的行数(从文件开始处算起),或需要跳过的列号列表(从0开始)。
na_values 一组用于替换NA的值。
comment 用于将注释信息从行尾拆分出去的字符(一个或者多个)。
parse_dates 尝试将数据解析为日期,默认为False。如果为True,则尝试解析所有列。此外,还可以指定需要解析的一组列号或者列名。如果列表的元素为列表或者元组的话,就会将多个列组合到一起再进行日期解析工作(例如,日期/时间分别位于两个列中)。
keep_date_col 如果连接多列解析日期,则保持参与连接的列。默认为False。
converters 由列号/列名跟函数之间的映射关系组成的字典。例如,{‘foo’:f}会对foo列的所有值应用函数f。
dayfirst 当解析有歧义的日期的时候,将其当做国际格式(例如,8/28/2017->Augest 28,2017)。默认为False。
date_parse 用于解析日期的函数。
nrows 需要解析的行数(文件开始处算起)。
避免读取整个文件。
iterator 返回一个TextParse以便逐块读取文件。
chunksize 文件块的大小(用于迭代)。
需要逐块读取文件,可以设置chunksize的大小。
skip_footer 需要忽略的行数(从文件末尾处算起)。
verbose 打印各种解析器输出信息,比如“非数值列中缺失值的数量”等等。
encoding 用于将unicode的文本编码格式。例如:“utf-8”表示用UTF-8编码的文本。
squeeze 如果数据经过解析后仅含有一列,则返回False。
thousands 千分位分隔符,如",“或者”."。

csv.Dialect的属性

参数 说明
delimiter 用于分割字段的单个字符串,默认为“,”。
lineterminator 用于写操作的行结束符,默认为“\r\n”。读操作将忽略此选项,它能认出跨平台的行结束符。
quotechar 用于带有特殊字符(如分隔符)的字段的引用符号。默认为“"”。
quoting 引用约定。可选值包括csv.QUOTE_ALL(引用所有字段)、csv.QUOTE_MINIMAL(只引用带有诸如分隔符之类特定字符的字段)、完善信息请参考Python的文档。默认为QUOTE_MINIMAL。
skipinitialspace 忽略分隔符后面的空白符。默认为False。
doublequote 如何处理字段内的引用符号。如果为True,则双写。完整信息及行为请参见在线文档。
escapechar 用于对分隔符进行转义的字符串(如果quoting被设置为csv.QUOTENONE的话),默认禁用。

注意: 对于那些使用复杂分隔符或者多字符分隔符的文件,csv模块就无能为力了。这种情况下,你就只能使用字符串的spilt方法或正则表达式方法re.spilt进行拆分和其他整理工作了。

使用HDF5格式

很多工具都能实现高效地读写磁盘上以二进制格式存储的科学数据。HDF5就是其中一个流行的工业级库,它是一个C库,带有很多语言的接口,如Java、Python和MATLAB等。HDF5中的HDF指的是层次型数据格式(Hierarchical data format)。每个HDF5文件都含有一个文件系统式的节点结构。与其他简单格式相比,HDF5支持多种压缩器的即时压缩,还能更加高效地存储重复模式数据。对于那些非常大的无法直接放入内存的数据集,HDF5就是不错的选择,因为它可以高效地分块读写。
  Python中的HDF5有两个接口(PyTables和h5py),它们各自采用了不同的问题解决方式。h5py提供了一种直接而高级的HDF5API访问接口,而PyTables则抽象了HDF5许多细节以提供对核外计算技术(out-of-core computation)的某些支持。
  pandas有一个最小化的类似字典的HDFStore类,它通过PyTables存储pandas对象。
  由于许多数据分析问题都是IO密集型(而不是CPU密集型),利用HDF5这样的工具能显著提升应用程序的效率。
  警告:HDF5不是数据库。它最适合用作“一次写多次读”的数据集。虽然数据可以在任何时候被添加到文件中,但如果同时发生多个写操作,文件就有可能被破坏。

使用

  • Pandas的读取方法为:HDFStore
  • 关闭读取store.close()os.remove('mydata.h5')

读取Excel文件

Pandas的ExcelFile类支持读取存储在Excel中的表格型数据。xls_file = pd.ExcelFile('data.xls')

读取二进制文件

  • 使用Pandas的to_pickle转换为二进制文件。
  • 使用Pandas的read_pickle将二进制文件读取出来。
  • 警告:pickle仅仅建议用于短期存储格式。其原因是很难保证该格式永远是最稳定的;今天pickle的对象可能无法被后续版本的库unpickle出来。

数据清理转换合并重塑

Pandas和Python标准库提供了一组高级的、灵活的、高效的核心函数和算法,它们使你能够轻松将数据规整化为正确的形式。

合并数据集

以下都是Pandas中的方法:

方法 说明
merge 可以根据一个或者多个键值将不同的DataFrame中的行连接起来。SQL或其他关系型数据库的用户对此应该比较熟悉,因为它实现得到就是数据库的连接操作。
concat 可以沿着一条轴将多个对象堆叠到一起。
combine_first 可以将重复数据编接在一起,用一个对象中的值填充另一个对象中的缺失值。

merge函数的参数

参数 说明
left 参与合并的左侧的DataFrame。
right 参与合并的右侧的DataFrame。
how “inner”,
“outer”,
“left”,
“right”其中之一。
默认为“inner”。
on 用于连接的列名。必须存在于左右两个DataFrame对象中。如果未指定,且其他连接键也未指定,则以left和right列名的交集作为连接键。
left_on 左侧DataFrame中用作连接键的列。
right_on 右侧DataFrame中用作连接键的列。
left_index 将左侧的行索引用作其连接键。
right_index 将右侧的行索引用作其连接键。
sort 根据连接键对合并后的数据进行排序,默认为True。有时在处理大数据集的时候,禁用该选项可以获得更好的性能。
suffixes 字符串值元组,用于追加到重叠列名的末尾,默认为(’_x’,’_y’)。例如,如果左右两个DataFrame对象都有“data”,则结果中就会出现“data_x”和“data_y”。
copy 设置为False,可以在某些特殊情况下避免将数据复制到结果数据结构中。默认总是复制。

API文档

  • Pandas 0.20.3文档
  • 石卓林的博客 -十分钟搞定pandas

matplotlib

Matplotlib是最流行的用于绘制数据图表的Python库。
  Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。
  通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。

Matplotlib简易教程

  • Python Matplotlib简易教程

API文档

  • Matplotlib
  • Matplotlib图像示例
  • Matplotlib Tutorial(译)

IPython

IPython是Python科学计算标准工具集合的组成部分,它将其他所有的东西联系到了一起。它为交互式和探索式计算提供了一个强健而高效的环境。它是一个增强的Python Shell, 目的是为了提高编写、测试、调试Python代码的速度。它主要用于交互式数据处理和利用Matplotlib对数据进行可视化处理。

架构
强大的交互式 shell
Jupyter 内核
交互式的数据可视化工具
灵活、可嵌入的解释器
易于使用,高性能的并行计算工具

安装

ipython notebook目前已经整合为Jupyter notebook。安装如下:

sudo pip3 install jupyter notebook

使用

在任意一个文件夹下面执行下面的指令:

jupyter notebook

Python重要的库_第5张图片

Scipy

Scipy是一组专门解决科学运算中各种标准问题域的包的集合,主要包括下面的这些包:

包名 作用
scipy.integrate 数值积分例程和微分方程求解器
sicpy.linalg 扩展了由numpy.linalg提供的线性代数例程和矩阵分解功能。
scipy.optimize 函数优化器(最小化器)以及根查找算法。
scipy.signal 信号处理工具。
scipy.sparse 稀疏矩阵和稀疏线性系统求解器。
scipy.special SPECFUN(这是一个实现了很多常用数学函数,比如伽马函数的Fortran库)的包装器。
scipy.stats 标准连续和离散概率分布(如密度函数、采样器、连续分布函数等)、各种统计校验方法,以及更好的描述统计方法。
scipy.weave 利用内联C++代码加速数组计算的工具。

Numpy和Scipy的有机结合可以替代MATLAB的计算功能(包括其插件工具箱)。

API文档

  • Scipy
  • Scipy Lecture Notes学习笔记
  • scientific-python-lectures Jupyter

数据可视化

Seaborn

Python重要的库_第6张图片

Seaborn is a Python data visualization library with an emphasis on statistical plots. The library is an excellent resource for common regression and distribution plots

Plotly Python Library

Python重要的库_第7张图片

机器学习

Anaconda

Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。Anaconda利用工具/命令conda来进行package和environment的管理,并且已经包含了Python和相关的配套工具。

  • 点我跳转
  • Anaconda使用总结

安装Tensorflow

  1. 安装Anaconda

    1. chmod +x Anaconda3.sh
    2. ./Anaconda3.sh
    3. 之后就会自动安装完所有的环境。
    4. 修改源:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    5. 配置:vim ~/.bashrc
      1. export PATH="/home/python/anaconda3/bin:$PATH"
      2. source ~/.bashrc
    6. 开始安装Tensorflow。
  2. 补齐库:

    # Ubuntu/Linux 64-bit  
    $ sudo apt-get install python-pip python-dev  
      
    # CentOS, Fedora, RHEL  
    $ sudo yum install python-pip python-devel  
      
    # Mac OS X  
    $ sudo easy_install pip  
    
  3. 首先,创建一个叫做的tensorflow虚拟环境: conda create -n tensorflow pip python=3.5 # 或者 python=3.6,等等。

  4. 启动我们创建的虚拟环境source activate tensorflow

  5. 安装Tensorflow:

    (tensorflow)$ pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/protobuf-3.1.0-cp35-none-linux_x86_64.whl
    
  6. 之后就会自动安装所有的依赖了。

Tensorflow

  • 清华大学开源软件镜像站
  • 官网
    • 安装教程
  • Tensorflow案例大全——luyishisi/tensorflow
    • TensorFlow识别字母扭曲干扰型验证码-开放源码与98%模型
  • Tensorflow教学案例——luyishisi/tensorflow

综合

  • 用python做科学计算 五星推荐的中文学习资料!!!
  • scikit-learn
    Python重要的库_第8张图片

Cluster-聚类算法

  • Comparing Python Clustering Algorithms

GA(Genetic Algorithm)

  • Pyevolve documentation

附录

  • 《利用Python进行数据分析》
  • 《Python高手之路》
  • Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱

你可能感兴趣的:(Python)