正文开始前的一些废话
好久没有写博客了,关于数据分析类的python库其实很久前就学习过,但是编程这种东西,不使用就很容易忘记,结束秋招已经有漫长一段时间了,选择了数据挖掘工程师这个岗位,需要学习的东西慢慢变多了,很多东西不熟悉是不行的,所以我想写一系列数据分析的博客,依旧是大坑,不定期更新。我想这一系列的东西还是从基本的编程开始比较合适,这里也推荐一本入门python数据分析的书籍,利用python进行数据分析(第二版),我有对应的中英文pdf,如果大家有兴趣,欢迎在本博文下面留言,直接留邮箱,我会给你发pdf,注意是第二版,第一版太老了,很多内容已经过时了。本博文基本就是根据这本书里面的逻辑编排的。不是严格意义上的照搬,里面穿插很多我的理(fei)解(hua)。下面开始正式的内容,你可以跳过这个小节。
整体导读
两个重点的内容,其一就是ndarray,这是numpy基本的对象,这一部分最重要的就是基本的切片索引;其二就是利用数组进行数据处理。numpy总的来说就是数组和数组的操作,当然一个成熟的函数库总是有各种各样的函数细节,这里我可能不能全部涉及,但本博文会根据我实际的使用不停地更新。
放一张思维导图,方便复习
一个叫ndarray的多维数组对象
说白了就多维数组,这个nd很形象,nd-array,numpy里面所有的函数不是为了创建这个对象就是为了操作这个对象。
ndarray是一个通用的同构数据多维容器,也就是说,其中的所有元素必须是相同类型的。 两个基本属性,shape和dtype,字面上的意思,维度和数据类型。
如何去创建ndarray
- 使用array函数
这里array函数会自动判断数据类型
这里有完整的参数,大家有兴趣可以去查一下具体都代表着什么
array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0)
- 其他一些创建方法
这边还是有其他一些创建方式,用表列出来了,最常用的还是上面提到的。
ndarray的数据类型
每次看到编程语言的数据类型,我都是看不下去的,只想跳过,可能是我还没有吃过数据类型的亏。但是numpy的dtype是它灵活交互其他系统的源泉之一。新生不需要太在意这些数据类型。下面的一些代码看懂就成。
到这里我们应该基本清楚ndarray是什么东西,怎么去创建它,恭喜你,到这里你差不多算是叩开numpy的大门了。下面该讲操作了。
numpy数组的运算
没错,不是重点,就是很基本的运算,加减乘除的那种
基本的索引和切片
一维数组的切片
跟数组最大的区别是,数组切片是原始数组的视图。数据不会被复制,视图上的任何修改都会直接反应到源数组上。
注意上面和下面的两个代码示例,记住numpy是需要特别的函数进行数组的复制的。
numpy是用来大数据处理的,复制来复制去会影响性能和内存。
高维数组的索引
这里就是和正常的编程语言里面的索引是一样的
看图就很清楚啦
python里面喜闻乐见的切片索引
学过python 的话,这边的切片索引就很好理解了。我们还是代码为主
对切片的赋值也是会扩散的
下面是两个重要的索引,算是重点
布尔型索引
下面的两个例子就能看出布尔索引的方便了
花式索引
主要是指利用整数数组进行索引
这边的代码有点意思,可能和你的理解有一些偏差
数组转置和轴对换
其实用到的不是很多
高维的转置比较费脑子