在职场中不彻底是技术,还有其它方面的东西,你应该知道:
数组
本文知识结构图:
网络
回顾:app
索引与切片
切片索引Numpy中选取数据子集或者单个元素的方式有不少,一维数组和Pyhon列表的功能差很少,看下图:
性能
数组切片与列表最重要的区别在于:数组切片是原始数组的视图,这就是说数据不会被复制,视图上的任何修改都有会直接反映到源数据上,也就是说视图上的任何修改都有会直接改动到数据源,看下图运行效果:大数据
为何是这样的?由于Numpy设计初衷就是处理大数据,因此能够想象一下,假如Numpy坚持要将数据复制来复制去的话会产生性能与内存等问题.ui
tips:若是想获得ndarray切片的一份副本而非视图,就须要显示地进行复制操做,例以下图:spa
多维数组
注意:直接给元素赋值,返回的数组都有是视图,是直接映射到数据源上,若有改变也会影响到数据源
说明:布尔索引与花式索引不经常使用,不做讲解!
通用函数运算
运算和数据处理
Numpy数组使你能够将许多种数据处理任务表述为简洁的数据表达式,不然须要编写循环,用数组表达式代替循环的作法一般称为失量化.失量化的运算比普通的Python运算更快.
条件逻辑表述为数组运算
numpy.where
函数是三元表达式x if condition else y
的失量化版本,np.where
的第二个和第三个参数没必要是数组,它们都有能够是标量值,在数据分析中where一般用于根据另外一个数组而产生一个新的数组,以下:
用于布尔型数组的方法
数据惟一化及集合运算
Numpy提供了一些针对一维ndarray的基本集合运算,最经常使用的就是np.unique,它用于找出数组中的惟一值并返回已排序的结果:
数组的文件输入输出
Numpy可以读写磁盘上的文本数据或者二进制数据.
将数组以二进制格式保存到磁盘
np.save 和 np.load 是读写磁盘数组数据的两个主要函数,默认状况下,数组是以未压缩的原始二进制格式保存在扩展名为.npy的文件中.
np.savez能够将多个数组保存到一个压缩文件中,将数组以字参数的形式传入
看下图:
线性代数
线性代数是任何数组库的重要组成,Numpy提供了一个用于矩阵乘法的dot函数
numpy.linalg中一组标准的矩阵分解运算,如求逆和行列式之类的东西. 见下章公式
最后
关于Numpy
教程当前就作到这里,我下一篇会把整个知识点作一个知识网络图,以上只是Numpy的部分使用,若是单纯演示公式,意义不大。下一章,我把全部的公式补上,方便查阅.
再下一篇是关于Pandas
的教程,Numpy
深刻部分先放一下,等把Pandas
教程作完再补上,由于Pandas
是对Numpy
的进一步补充,等等你们熟悉了Pandas
再回头看Numpy
高级部分更容易理解.
ps:推荐一本数据分析的书,这本书在京东上销量也名列前茅的
您的Python之旅
长按,识别二维码,关注公众号
推荐阅读:
本文分享自微信公众号 - Python绿色通道(Python_channel)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。