zoukankan      html  css  js  c++  java
  • Python数据分析之numpy学习

    一.数据分析的概念

    数据分析,把看似杂乱无序的数据从中提取共同点,总结研究出他们的共同规律
        数据分析三剑客:Numpy,Pandas,Matplotlib
        Numpy(Numerical Python)是python语言的的一个扩展程序库,支持大量维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数,
     而该模块也是其他数据分析模块(如pandas和scipy)的核心。

    二.创建ndarray

    1.使用np.array()创建
        一维数据创建:,array的首个参数一定是一个序列,可以是元组也可以是列表。
      
      

    如果一维数组不是一个规律的有序元素,而是人为的输入,就需要array()函数创建了。

    
    

    In [8]: arr1 = np.array((1,20,13,28,22))

    
    

    In [9]: arr1

    
    

    Out[9]: array([ 1, 20, 13, 28, 22])

    
    

    In [10]: type(arr1)

    
    

    Out[10]: numpy.ndarray

    
    

    上面是由元组序列构成的一维数组。

    
    
    
    
    

    In [11]: arr2 = np.array([1,1,2,3,5,8,13,21])    

    
    

    In [12]: arr2

    
    

    Out[12]: array([ 1,  1,  2,  3,  5,  8, 13, 21])

    
    

    In [13]: type(arr2)

    
    

    Out[13]: numpy.ndarray

    
    

    上面是由列表序列构成的一维数组。

     

      

      二维数组的创建:二维数组的创建,其实在就是列表套列表或元组套元组
        

    In [14]: arr3 = np.array(((1,1,2,3),(5,8,13,21),(34,55,89,144)))

    In [15]: arr3

    Out[15]:

    array([[  1,   1,   2,   3],

    [  5,   8,  13,  21],

    [ 34,  55,  89, 144]])

    上面使用元组套元组的方式。

    In [16]: arr4 = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])

    In [17]: arr4

    Out[17]:

    array([[ 1,  2,  3,  4],

    [ 5,  6,  7,  8],

    [ 9, 10, 11, 12]])

    上面使用列表套列表的方式。

      

     

        多维数组的获取

      

      对该数组进行操作:

      

      

    2. 使用np的routines函数创建 
      包含以下创建的方法:(1) np.ones(shape,dtype=None,order='C')

      

     

      (2)np.zeros(shape,dtype=None,order='C')

      

      (3)np.full(shape,fill_value,dtype=None,order='C')

       

      (4)np.linspace(start,stop,num=50,endpoint,restep=False,dtype=None)等差数列

      

      

      (5)np.arange([start,]stop,[step,]dtype=None)

      

    (6)np.random.randint(low,high=None,size=None,dtype='I')

      

    (7)np.random.randn(d0,d1,d2....dn) 标准正太分布

      

    (8)np.random.random(size=None)
        生成0到1的随机数,左闭右开, np.random.seed(3)

      

    三.ndarray的属性

        4个必须要记住的参数
            ndim:维度
            shape:形状(各维度的长度)
            size:总长度(各维度元素个数和)
            dtype:元素类型

      

      

    四.ndarray的基本操作

    1. 索引
        一维与列表完全一致 多维时同理

      

    2. 切片
        一维与列表完全一致,多维时同理

      

      

      数据翻转:

      

      图片进行倒置:

      

    3.变形
        使用arr.reshape()函数
        注意:.参数是tuple!
      
    基本使用
        (1).将一维数组变形成多维数组

       

      (2)将多维数组转换成一维数组

      

      利用这个特性还可以进行图片倒置:

      

    4. 级联:简单理解就是array的拼接
          np.concatenate()

      

      再看一下维度不一样的数组相拼接:

      

      

        注意:

        

        横向拼接arr和arr两个数组,但必须满足两个数组的行数相同。

       

    5 切分
        与级联类似,三个函数完成切分工作:
        np.split(arr,行/列号,轴):参数2是一个列表类型
        np.vsplit()
        np.hsplit()

      

      照片的切分:

      

    6. 副本
        所有的赋值运算不会为ndarray的任何元素创建副本.对赋值后的对象操作也会对原来的对象生效

      

    五. ndarrary聚合操作

      

    其他聚合操作:
        Function Name    NaN-safe Version    Description
    np.sum    np.nansum    Compute sum of elements
    np.prod    np.nanprod    Compute product of elements
    np.mean    np.nanmean    Compute mean of elements
    np.std    np.nanstd    Compute standard deviation
    np.var    np.nanvar    Compute variance
    np.min    np.nanmin    Find minimum value
    np.max    np.nanmax    Find maximum value
    np.argmin    np.nanargmin    Find index of minimum value
    np.argmax    np.nanargmax    Find index of maximum value
    np.median    np.nanmedian    Compute median of elements
    np.percentile    np.nanpercentile    Compute rank-based statistics of elements
    np.any    N/A    Evaluate whether any elements are true
    np.all    N/A    Evaluate whether all elements are true
    np.power 幂运算

    六. 广播机制

        重要:ndarray广播机制的三条规则:缺失维度的数组将维度补
                充为进行运算的数组的维度.缺失的元素使用已有元素进行补充
                
                规则一:为缺失的维度补充1(进行运算的两个数组之间的维度
                              只能相差一个维度)
                规则二:缺失元素用已有值进行填充
                规则三:缺失维度的数组只能有一行或者一列

      

      

    七. ndarray排序

        1.快速排序
        np.sort()与ndarray.sort()都可以.但有区别:
        np.sort()不改变输入
        ndarray.sort()本地处理,不占用空间,但改变输入

      

    偶然看到的:

  • 相关阅读:
    ‘内部系统’怎么测试?两年测试的总结与反思
    微信公众号支付 -- 笔记
    数组处理
    String操作
    number 处理
    date 处理
    type检查
    全选全不选,返回字符串长度,汉字计数为2,获取url中的参数 ,函数防抖,函数节流
    关于移动端兼容BUG问题收集及处理
    nginx 1.6.0 配置文件服务器下载
  • 原文地址:https://www.cnblogs.com/tjp40922/p/10382631.html
Copyright © 2011-2022 走看看