numpy——基础,以矩阵为基础的数学计算模块,纯数学存储和处理大型矩阵。 这个是很基础的扩展,其余的扩展都是以此为基础。
scipy——数值计算库,在numPy库的基础上增加了众多的数学、科学以及工程计算中常用的库函数。 方便、易于使用、专为科学和工程设计的Python工具包.它包括统计,优化,整合,线性代数模块,傅里叶变换,信号和图像处理,常微分方程求解器等等。
pandas——数据分析,基于numPy 的一种工具,为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。
matplotlib——绘图,对于图像美化方面比较完善,可以自定义线条的颜色和式样,可以在一张绘图纸上绘制多张小图,也可在一张图上绘制多条线,可以很方便的对数据进行可视化分析。
一、numpy
NumPy核心数据结构:ndarray NumPy的数组类被称作ndarray。通常被称作数组。注意numpy.array和标准Python库类array.array并不相同,后者只处理一维数组和提供少量功能。
一种由相同类型的元素组成的多维数组,元素数量是实现给定好的 元素的数据类型由dtype(data-type)对象来指定,每个ndarray只有一种dtype类型
ndarray的大小固定,创建好数组后数组大小是不会再发生改变的
1.创建
array函数:接收一个普通的python序列,并将其转换为ndarray
np.array([1,2,3]) np.array([[1,2],[3,4]]) np.array([1,2,3,4,5],ndmin = 2) [[1 2 3 4 5]]
a=np.ndarray([1,2,3]) a.shape =(1,2,3)
zeros函数:创建指定长度或者形状的全零数组。np.zeros((3,3))
ones函数:创建指定长度或者形状的全1数组。 np.ones((2,3,4))
empty函数:创建一个没有任何具体值的数组(准备地说是创建一些未初始化的ndarray多维数组)
numpy.empty(shape, dtype = float, order = ‘C’) np.empty((**3,3),dtype = ‘i1’)**
1. Shape 空数组的形状,整数或整数元组
2. Dtype 所需的输出数组类型,可选
3. Order ‘C’为按行的 C 风格数组,’F’为按列的 Fortran 风格数组
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
1. object 任何暴露数组接口方法的对象都会返回一个数组或任何(嵌套)序列。
2. dtype 数组的所需数据类型,可选。
3. copy 可选,默认为true,对象是否被复制。
4. order C(按行)、F(按列)或A(任意,默认)。
5. subok 默认情况下,返回的数组被强制为基类数组。 如果为true,则返回子类。
6. ndimin 指定返回数组的最小维数。
来自元组列表 arr = [(1,2,3,4),(5,6,7,8)] arr2 = np.asarray(arr) [[1 2 3 4] [5 6 7 8]]
arange函数: 类似python的range函数,通过指定开始值、终值和步长来创建一个一维数组(ndarray),注意:最终创建的数组不包含终值 arr = np.arange(6,dtype = float).reshape(2,3) [[0. 1. 2.][3. 4. 5.]]
linspace函数:通过指定开始值、终值和元素个数来创建一个一维数组,数组的数据元素符合等差数列, numpy.linspace(start,stop,num,endpoint,retstep,dtype) endpoint 序列中是否包含stop 值 默认为 True
logspace函数:和linspace函数类似,不过创建的是等比数列数组
numpy.logscale(start, stop, num, endpoint, base, dtype)
1. start 起始值是base start
2. stop 终止值是base stop
3. num 范围内的数值数量,默认为50
4. endpoint 如果为true,终止值包含在输出数组当中
5. base 对数空间的底数,默认为10
6. dtype 输出数组的数据类型,如果没有提供,则取决于其它参数
使用随机数填充数组,即使用numpy.random中的random()函数来创建0-1之间的随机元素,数组包含的元素数量由参数决定
rand 返回 0 - 1 随机值
randn 返回一个样本具有标准正态分布
randint 返回随机的整数,位于半开区间[low,hight)size = 10 (3,3)random_integers(low[, high, size]) 返回随机 的整数,位于闭区间 arr = np.random.randint(1,9,size = (2,4)) [[3 7 1 6][3 1 1 8]]
random 返回随机浮点数 (0-1)
ndarray属性
ndim 数组轴(维度)的个数,轴的个数被称作秩
shape 数组的维度, 例如一个2排3列的矩阵,它的shape属性将是(2,3),这个元组的长度显然是秩,即维度或者ndim属性
size 数组元素的总个数,等于shape属性中元组元素的乘积。
dtype 一个用来描述数组中元素类型的对象,可以通过创造或指定dtype使用标准Python类型。不过NumPy提供它自己的数据类型。
itemsize 数组中每个元素的字节大小。例如,一个元素类型为float64的数组itemsiz属性值为8(=64/8),又如,一个元素类型为complex32的数组item属性为4(=32/8).
修改形状: 直接修改数组ndarray的shape值, 要求修改后乘积不变。
直接使用reshape函数创建一个改变尺寸的新数组,原数组的shape保持不变,但是新数组和原数组共享一个内存空间,也就是修改任何一个数组中的值都会对另外一个产生影响,另外要求新数组的元素个数和原数组一致。当指定某一个轴为-1的时候,表示将根据数组元素的数量自动计算该轴的长度值。
数组与标量、数组之间的运算
用于执行算数运算的输入数组必须具有相同的行列或符合数组广播规则
数组的矩阵积(matrix product)
两个二维矩阵(行和列的矩阵)满足第一个矩阵的列数与第二个矩阵的行数相同,那么可以进行矩阵的乘法,即矩阵积,矩阵积不是元素级的运算。也称为点积、数量积。
数组的索引与切片
arr2 = arr[2:7:2]
数组的转置与轴对换
通用函数:快速的元素级数组成函数
聚合函数
np.where函数
np.unique函数
numpy基本数据类型


np.unique函数的主要作用是将数组中的元素进行去重操作(也就是只保存不重复的数据)
二、pandas import pandas as pd
pandas中主要有两种数据结构,分别是:Series和DataFrame。
Series:一种类似于一维数组的对象,是由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。仅由一组数据也可产生简单的Series对象。注意:Series中的索引值是可以重复的。
DataFrame:一个表格型的数据结构,包含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型等),DataFrame即有行索引也有列索引,可以被看做是由Series组成的字典。
Series:
Series值的获取主要有两种方式:
通过方括号+索引的方式读取对应索引的数据,有可能返回多条数据
通过方括号+下标值的方式读取对应下标值的数据,下标值的取值范围为:[0,len(Series.values));另外下标值也可以是负数,表示从右往左获取数据
Series获取多个值的方式类似NumPy中的ndarray的切片操作,通过方括号+下标值/索引值+冒号(:)的形式来截取series对象中的一部分数
DataFrame: 通过二维数组创建
DataFrame数据获取
可以直接通过列索引获取指定列的数据, eg: df[column_name]
如果需要获取指定行的数据的话,需要通过ix方法来获取对应行索引的行数据,eg: df.ix[index_name]
元素修改
pandas基本功能
数据文件读取/文本数据读取
通过pandas提供的read_xxx相关的函数可以读取文件中的数据,并形成DataFrame,常用的数据读取方法为:read_csv,主要可以读取文本类型的数据
#观察可以看到,标题名称附加了自定义名称,但文件中的标题还没有被消除。 现在,使用header参数来删除它。df=pd.read_csv(“data01.csv”,names=[‘age’,’score’],header = 0)
索引、选取和数据过滤
通过DataFrame的相关方式可以获取对应的列或者数据形成一个新的DataFrame, 方便后续进行统计计算。
df1.isnull()/df1.notnull() 检查缺失值
df2.dropna() 删除NaN的行
df2.dropna(axis=1) 删除列
算法运算和数据对齐
函数的应用和映射
重置索引
常用方法:


三、matplotlib
Figure:面板(图),matplotlib中的所有图像都是位于figure对象中,一个图像只能有一个figure对象。
Subplot:子图,figure对象下创建一个或多个subplot对象(即axes)用于绘制图像。
绘制曲线
绘制散点:
matplotlib:颜色、标记和线型











