美文网首页大数据 爬虫Python AI Sql我爱编程
利用Python进行数据分析的笔记-Numpy基础

利用Python进行数据分析的笔记-Numpy基础

作者: JaeGwen | 来源:发表于2017-12-24 14:49 被阅读53次

    Nump中的ndarray:一种多维数组对象

    Numpy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器。你可以利用它对整块数据执行一些数学运算,其语法跟标量元素之间运算一样。

    image.png

    创建ndarray

    创建数组最简单的办法就是使用array函数,它接受一切序列型的对象(包含其他数组),然后产生一个的含有传入数据Numpy数组。以一个列表类型的转化例子:

    image.png

    嵌套序列 (比如由一组等长列表组成的列表)将会被转化为一个多维数组:

    image.png

    特殊数组(全0或全1数组、单位数组、空数组)

    image.png image.png image.png image.png image.png

    ndarray的数据类型

    dtype(数据类型)是一个特殊的对象,它含有ndarray将一块内存解释为特定数据类型所属信息:

    image.png

    dtype是Numpy如此强大和灵活的原因之一。多数情况下,它们直接映射到相应的机器表示,使得“读写磁盘上的二进制数据流”以及“集成低级语言代码”(如C以及Fortran)等 ,使得工作变得更加简单

    image.png

    数组与标量之间的运算

    数组与标量之间的运算很重要,因为这样你就不用编写循环即可对数据执行批量运算的操作。这个通常叫做矢量化,大小相等的数组之间的任何算术运算都会将运算应用到元素级别:

    image.png

    基本的索引和切片

    Numpy数组的索引是一个内容丰富的主题,因为选取数据子集或者单个元素的方式有很多。

    image.png

    如上所示,当你将一个标量赋值给一个切片时,无论切片的元素是单个还是多个,该值都会自动广播到这个切片范围。**跟列表最重要的区别就是,数组切片是原始数组的视图。这个意味着数据是不会被复制的,视图上的修改都会反映到源数组上:

    image.png

    由于Numpy的设计目的是处理大数据,所以你可以想象下,假如Numpy坚持要将数据复制来复制去,势必会产生性能问题和内存消耗问题

    如果你想要得到的ndarray的切片的一份副本而非视图,可以使用显式复制,例如arr5.copy()

    对于多维度数组,能做的事情更多,在一个二维数组中,各索引位置上的元素不再是标量,而是一维数组:

    image.png image.png

    布尔型索引

    image.png image.png image.png image.png

    通过布尔型索引选取数组中的数据,将总是创建数据的副本,即使返回一模一样的数组也是如此。

    Python关键字and和or在布尔型数组中无效
    通过布尔型数组设置值是一种经常用到的手段,为了将data中的所用的负值都设置为0
    通过一维布尔型数组设置整行或整列的值

    image.png

    花式索引

    花式索引是一个Numpy的术语,它指的是利用整数数组进行索引。只需传入一个用于指定顺序的整数列表或ndarray即可:

    image.png

    未完待续

    相关文章

      网友评论

        本文标题:利用Python进行数据分析的笔记-Numpy基础

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