数据分析 | Numpy进阶

在职场中不彻底是技术,还有其它方面的东西,你应该知道:
数组

工做不止眼前的苟且,还有诗和远方
微信


本文知识结构图:
网络



回顾:app

Python数据分析之旅: 前戏
编辑器

数据分析 | Numpy初窥函数

索引与切片

切片索引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源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索