zoukankan      html  css  js  c++  java
  • 数据分析学习笔记(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)应用:

  • 相关阅读:
    Test Double
    测试金字塔
    windows 10安装 db2
    漫谈系列
    SOA 和 微服务的几篇文章
    JavaScript JQuery
    【原创】单测代码生成工具Evosuite试用
    [转载]Linux进程调度原理
    [转载]Java 应用性能调优实践
    [转载]Java进程物理内存远大于Xmx的问题分析
  • 原文地址:https://www.cnblogs.com/bigdata-stone/p/9920411.html
Copyright © 2011-2022 走看看