美文网首页Numpy
python之科学运算Numpy模块

python之科学运算Numpy模块

作者: SlashBoyMr_wang | 来源:发表于2018-11-05 17:36 被阅读104次

    前言:
    今天我们介绍两个科学运算当中最为重要的两个模块,一个是 numpy,一个是 pandas。任何关于数据分析的模块都少不了它们两个。

    为什么使用 numpy and pandas
    运算速度快:numpy 和 pandas 都是采用 C 语言编写, pandas 又是基于 numpy, 是 numpy 的升级版本。
    消耗资源少:采用的是矩阵运算,会比 python 自带的字典或者列表快好多

    Numpy属性
    ndim:维度
    shape:行数和列数
    size:元素个数

    屏幕快照 2018-11-05 下午3.13.52.png

    创建ndarray
    array:创建数组
    dtype:指定数据类型
    zeros:创建数据全为0
    ones:创建数据全为1
    empty:创建数据接近0
    arrange:按指定范围创建数据
    linspace:创建线段

    屏幕快照 2018-11-05 下午4.01.47.png 屏幕快照 2018-11-05 下午4.02.13.png 屏幕快照 2018-11-05 下午4.15.48.png
    注意:
    numpy默认ndarray的所有元素的类型是相同的
    如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str>float>int

    Numpy的基本操作
    1.索引:
    (一维与列表完全一致 多维时同理),根据索引修改数据、查看数据

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

    屏幕快照 2018-11-05 下午4.23.00.png 屏幕快照 2018-11-05 下午4.24.38.png
    3.变形
    使用arr.reshape()函数,注意参数是一个tuple
    例:将一维数组变形成多维数组===arr.reshape((2,5))
    例:将多维数组变形成一维数组===arr2 = arr1.reshape((15,))
    例:arr2.reshape((-1,3)) ===其中-1表示的是根据列自动计算出行
    实际应用:
    图片翻转:图片本质上是三维的array,先将三维变形为一维,再通过切片翻转,然后在讲一维array变形为三维就实现了图片的翻转。

    4.级联
    使用np.concatenate((a1, a2, ...), axis=0)函数
    级联需要注意的点:
    --- 1.级联的参数是列表:一定要加中括号或小括号
    --- 2.维度必须相同
    --- 3.形状相符:在维度保持一致的前提下,如果进行横向(axis=1)级联,必须保证进行级联的数组行数保持一致。如果进行纵向(axis=0)级联,必须保证进行级联的数组列数保持一致。
    --- 4.可通过axis参数改变级联的方向

    屏幕快照 2018-11-05 下午4.42.39.png
    5.切分
    与级联类似,三个函数完成切分工作:
    -- np.split(arr,[行,列],轴):参数2是一个列表类型
    -- np.vsplit
    -- np.hsplit
    例:np.split(arr,[2,4],axis=0)
    应用:照片剪切

    ndarray的聚合操作
    求和np.sum()
    最大最小值:np.max()/ np.min()
    平均值:np.mean()

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

    例一 例二 例三

    ndarray的排序
    快速排序
    np.sort()与ndarray.sort()都可以,但有区别:
    np.sort()不改变输入(原ndarray顺序不变)
    ndarray.sort()本地处理,不占用空间,但改变输入(顺序改变,被覆盖)
    部分排序(不常用)
    np.partition(a,k) 有的时候我们不是对全部数据感兴趣,我们可能只对最小或最大的一部分感兴趣。
    当k为正时,我们想要得到最小的k个数
    当k为负时,我们想要得到最大的k个数

    相关文章

      网友评论

      • 夜阑听雨_df11:你的开头诗呢??
        夜阑听雨_df11:@SlashBoyMr_wang 最近品读的欣赏
        玉楼春·东风又作无情计 宋代:晏几道

        东风又作无情计,艳粉娇红吹满地。碧楼帘影不遮愁,还似去年今日意。

        谁知错管春残事,到处登临曾费泪。此时金盏直须深,看尽落花能几醉!
        SlashBoyMr_wang:@夜阑听雨_df11 太伤感,都快抑郁了!

      本文标题:python之科学运算Numpy模块

      本文链接:https://www.haomeiwen.com/subject/pnhsxqtx.html