数据分析之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个数进行排序
原文地址:https://www.cnblogs.com/hu13/p/9330275.html