数据分析学习笔记(1):工作环境以及建模理论基础

零、Python语言基础复习

 

一、环境部署

  1.python包管理:

    (1)安装:pip install xxx,conda install xxx

    (2)卸载:pip uninstall xxx,  conda uninstall xxx

    (3)升级:pip install -upgrade xxx, conda update xxx

  2.IDE

    1)Jupyter notebook:

     (1)Anaconda自带,无需单独安装

        (2)记录思考过程,实时查看运行进程

     (3)基于web的在线编辑器(本地)

     (4).ipynb文件分享

     (5)可交互式

     (6)记录历史运行结果

     (7)支持Markdown,Latex

    2)IPython

     (1)Anaconda自带,无需单独安装

     (2)Python的交互式命令行Shell

二、NumPy数据结构以及向量化

  1.Numpy :Numerical Python

    (1)高性能科学计算和数据分析(pandas)的基础包,提供多维数组对象

    (2)ndarray,多维数组(矩阵),具有矢量运算能力,快速、节省空间

    (3)矩阵运算,无需循环,可完成类似Matlab中的矢量运算

    (4)线性代数、随机数生成

    (5)import numpy as np

  2.Scipy  

    (1)在NumPy库的基础上增加了众多数学、科学以及工程常用的库函数

    (2)现行代数、微分方程求解、信号处理、图像处理、系数矩阵等

    (3)import scipy as sp

  3.NumPy数据结构

    (1)ndarray,N维数组对象(矩阵)

      所有元素类型必须相同

      ndim属性  维度的个数

      shape属性,各维度的大小

      dtype属性,数据类型

    (2)创建ndarray

      np.array(collection),collection为序列性对象(list),嵌套序列(list of list)

      np.zeros,np.ones,no.empty指定大小全为0或者全为1的数组

      注意:第一个参数是元组,用来指定大小,如(3,4)

         empty不是总是返回全0,有时候返回的是未初始的随机值

  4.代码学习

    (1)生成两行三列的随机数,并打印出数据的类型

    (2)分别打印出刚才创建的维度的个数,维度大小以及数据类型

    (3)全0,全1以及全空

  5.索引与切片

    (1)一维数组的索引与Python的列表索引功能相似

    (2)多维数组的索引

      arr[r1:r2,c1:c2]

      arr[1,1]等价于arr[1][1]

      [:]代表某个维度的数据

      arr[1:,1:]代表访问数组中第1行到第2行以及第1列到第2列的数据

    (3)条件索引

      布尔值多维数组arr[condition]condition可以是多个条件的组合。

      注意,多个条件组合要使用&  |  而不是and or 

    (4)维数转换transpose

      转换数组转置要指定维度编号(0,1,2,3.....)

    (5)np.where

      矢量版本的三元表达式  x if condition else y   如果条件满足就是x否则就是y

      np.where(conditoin,x,y)    满足条件就是x,不满足条件就是y

    (6)常用的统计方法

      np.mean,np,sum

      np.max,np.min

      np.std(标准差),np.argmin(方差)

      np.cumsum(),np.cumprod()

      注意要是多维的话,要指定统计的维度 

      np.all和np.any:all是满足全部条件;any至少有一个元素满足

      np.unique:找到唯一元素并返回排序结果

三、向量化

  1.向量化

    (1)获得执行速度更快、更加紧凑的代码策略

    (2)基本思路:"一次"在一个复杂的对象上进行操作,或者向其应用某个函数,而不是通过在对象的单个元素上循环来进行

    (3)在python级别上,函数式编程工具map,filter和reduce提供了向量化的手段

    (4)在numpy级别上,在ndarray对象的循环由经过高度优化的代码复杂,大部分代码用C编写,远快于python

    (5)矢量间的运算,相同大小的数组间运算应用在元素上

    (6)矢量和标量运算,"广播"-广播到各个元素

  2.通常函数(ufunc)

    (1)元素级运算

    (2)常用的通用函数

      ceil,向上最接近的整数

      floor,向下最接近的整数

      rint,四舍五入

      isnan,判断元素是否为NaN(Not a Number)

      multiply,元素相乘

      divide,元素相除

三、数据分析建模理论基础

  1.任务分类:(1)分类;(2)回归;(3)聚类;(4)时序分析

  2.分类与回归:

    (1)应用:信用卡申请人风险评估、预测公司业务增长量、预测房价等

    (2)原理:将数据映射到预先定义的群组或者类。算法要求基于数据属性值来定义类别,把具有某些特征的数据项映射到给定的某个类别上。

    (3)回归:用属性的历史数据来预测未来的趋势。算法首先假设一些已知类型的函数可以拟合目标函数、然后利用某种误差分析来确定一个与目标函数拟合程度最好的函数

    (4)区别:分类模型采用离散预测值,回归模型采用连续的预测值

  3.聚类:(1)应用:

posted @ 2018-11-07 07:56  stone1234567890  阅读(410)  评论(0编辑  收藏  举报