• 数据分析之Numpy


    一.Numpy
        Numpy(numerical python)是python语言的一个扩展程序库,支持大量的维度数组和矩阵运算,此外也针对数组运算提供了大量的数学函数库
    二.创建ndarray
        1.使用np.array()创建
            (1)创建一维数组   np.array([1,2,3,4])
            (2)创建二维数组   np.array([[1,2,3,4],[1,3,5,9]])
            注意:numpy默认ndarray的所有元素的类型是相同的.
                如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str> float> int
            (3)使用matplotlib.pyplot获取一个numpy数组,数据来源于一张图片,操作该numpy数据,该操作会同步到图片中
        2.使用np的routines函数创建
            (1)np.one(shape,dtypt=Noes)   使用:np.ones((5,4))创建一个5行四列二维数组
            (2)np.zeros(shape,dtypt=Noes)
            (3)np.full(shape,fill_value,dtype=None)   np.full((2,3),fill_value=9)
            (4)np.linspace(start,stop,num=50)等差数列   np.linspace(1,10, num=10)
            (5)np.arange(start,stop,step)               np.arange(2,8,2)
            (6)np.random.randint(low,high=None,size=None)通过np.random.seed()固定随机数   np.random.randint(3,9,size=(4,5))
            (7)np.random.randn()基于一维或多维的标准正太分布
            (8)np.random.random(size=None)生成一个0到1的随机数,左闭右开    np.random.random(size=(3,5))
    三.numpy属性
        (1)ndim   维度
        (2)shape   形状(各维度的长度)
        (3)size    总长度
        (4)dtype   元素类型
    四.ndarray的基本操作
        1.索引
            1一维与列表完全一致,多维同理推
            2根据索引修改值
        2.切片
            1一维与列表完全一致
            2.获取二维数组前两行
            3.获取二维数组前两列
            4.将数组的行倒叙,列倒叙,全部倒叙  sss[::-1,::-1]  sss[::-1,:]  sss[:,::-1]
        3.变形   
            使用arr.reshape()函数
            1.将一维数组变形成多维数组  -1表示自动计算行数/列数  sss.reshape(24)  sss.reshape(3,-1)
            2.将多维数组变为一维数组
            3.图片倒置
                1.将三维的图片变为一维的   
                2.对一维中的所有元素倒置
                3.将一维的数组变为三维的
        4.级联
            np.concatenate((数组1,数组2),axis=表示轴向,0表示的是竖直的轴向,1水平的轴向)
            (1).一维,二维,多维数组的级联,实际操作中多为二维数组  
                a = np.array([[1,2,3,4],[1,4,5,6]])
                a1 = np.array([[3,4,5,6],[6,7,8,9]])
                np.concatenate((a,a1),axis=1)
                注意:1.级联的数组必须维度相同,形状相符
            (2).合并两张图片
            
            (3).np.hstack((数组1,数组2))水平级联 与 np.vstack((ndarray1,ndarray2))竖直级联
        5.切分.
             与级联类似,三个函数完成切分工作
             1.np.split(ary,[切割的索引],axis=1)
             2.np.vsplit()   np.hsplit()
         
        6.副本
            使用copy()函数创建副本
    五.ndarray聚合操作
        1.np.sum()  求和
        2.np.max/np.min() 最大值,最小值
        3.np.mean()   求平均值
        ...
    六ndarray广播机制
        1.为缺失的维度补一(进行运算的两个数组之间的维度只能相差一个维度)
        2.缺失元素用已有值填充
        3.缺失维度的数组只能有一行或者一列
        例子:
           1.   a = np.array([0,1,2,3,4])
                b = np.array([[1,2,3,4,5],[1,2,3,4,5]])
                a+b
           2.   a = np.array([0,1,2,3,4])
                b = np.array([[1],[2],[3]])
                a+b
            
    七.ndarray的排序
        1.快速排序
            np.sort()与ndarray.sort()的区别:
               (1)   np.sort()不改变输入
               (2)   ndarray.sort()本地处理,不占用空间,但改变输入
        2.部分排序
            np.partition(arr,k) k为正数时,最小的k个数进行排序
                                k为负数时,最大的k个数进行排序
  • 相关阅读:
    Eclipse / android studio 添加第三方jar包 步骤
    Android checkbox 自定义点击效果
    Android 程序打包和安装过程
    Android 基础
    (转)Genymotion安装virtual device的“unable to create virtual device, Server returned Http status code 0”的解决方法
    (转)eclipse 导入Android 项目 步骤
    微信开放平台注册 步骤
    Android Studio 初级安装
    数组
    作用域问题代码
  • 原文地址:https://www.cnblogs.com/hu13/p/9330275.html
Copyright © 2020-2023  润新知