zoukankan      html  css  js  c++  java
  • 数据分析之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个数进行排序
  • 相关阅读:
    mysql高级之编程优化
    高性能产品必由之路
    linux下安装xhprof
    linux下安装apc
    linux下安装vld
    python装饰器通俗易懂的解释!
    python函数基础 与文件操作
    python基础入门一(语法基础)
    iOS Keychain,SSKeychain,使用 理解 原理
    起头
  • 原文地址:https://www.cnblogs.com/hu13/p/9330275.html
Copyright © 2011-2022 走看看