前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据分析 | Numpy进阶

数据分析 | Numpy进阶

作者头像
龙哥
发布2018-10-22 13:57:28
1.7K1
发布2018-10-22 13:57:28
举报
文章被收录于专栏:Python绿色通道Python绿色通道

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

工作不止眼前的苟且,还有诗和远方

本文知识结构图:

回顾:

Python数据分析之旅: 前戏

数据分析 | Numpy初窥

索引与切片

切片索引Numpy中选取数据子集或者单个元素的方式有很多,一维数组和Pyhon列表的功能差不多,看下图:

数组切片与列表最重要的区别在于:数组切片是原始数组的视图,这就是说数据不会被复制,视图上的任何修改都有会直接反映到源数据上,也就是说视图上的任何修改都有会直接改动到数据源,看下图运行效果:

为什么是这样的?因为Numpy设计初衷就是处理大数据,所以可以想象一下,假如Numpy坚持要将数据复制来复制去的话会产生性能与内存等问题.

tips:如果想得到ndarray切片的一份副本而非视图,就需要显示地进行复制操作,例如下图:

多维数组

注意:直接给元素赋值,返回的数组都有是视图,是直接映射到数据源上,如有改变也会影响到数据源

说明:布尔索引与花式索引不常用,不作讲解!

通用函数运算

运算和数据处理

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高级部分更容易理解.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python绿色通道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 索引与切片
  • 通用函数运算
  • 运算和数据处理
    • 条件逻辑表述为数组运算
      • 用于布尔型数组的方法
        • 数据唯一化及集合运算
        • 数组的文件输入输出
          • 将数组以二进制格式保存到磁盘
          • 线性代数
          • 最后
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档