<利用python进行数据分析>笔记 4.3.2~4.4
之前这本书已经看了大半部分,不过后来忙一些杂七杂八的事情,等想起来看后半部分时,发现前面的概念忘记的差不多了,于是从头开始看。
技术的书需要看好几遍才能领会里面的精要,加上资质愚钝,很多知识当时学过也能应用,但是过一段时间不用后就会变得陌生,可能是遗忘曲线在作怪,
也可能是当时并没有学的很深入,只是理解表面含义。就像火工头陀的武功,只是偷学了外功,没有学到内功心法,终不能成为一代宗师。
如何才能掌握书中的精要知识,成为要解决的难题。逛知乎了解到“费曼学习法”,通过让他人讲授知识,从而让自己更深刻掌握所学的一种好方法,决定尝试一下。
但是现实中不能随便抓住其他人来讲述我最近学到的东西,想来想去还是看完以后,以笔记心得的方式记录在博客上,一来留下学习笔记,二来如果有幸被其他人看到,发现不
对的地方能留下宝贵意见,更是巨大的收获,所以,从今天起,看书学习的东西都记录在案,坚持一年,看看成效。
4.3.2 数学和统计方法
一些统计函数的介绍,如 sum(求和),mean(平均值),min(最小)等
sum等函数可以传于一个参数,表示在哪一个轴上进行
如
arr = np.array([[1,2,3],[4,5,6]]) arr.sum(1) arr.sum(0)
arr.sum(1) 是在横向进行求和,axis=1是列,就是对各列进行求和,结果是[6,15]
arr.sum(0)就是在纵向进行求和,axis=0 是行,结果是[5,7,9]
4.3.3 布尔值数组的方法
对于布尔值数组 ,类似array([False,True,False])
有两个函数 any ,all
any是如果数组中有一个True则返回True,类似每个值 or 后的值
all 类似 每个值 and后的值,必须每个值都是True才返回 True
4.3.4 排序
np.sort 排序函数可以传入axis参数,指定哪一个轴上进行排序,axis=1是各列进行排序
np.sort(arr),返回的是排序好的数组的拷贝,没有传递axis参数的时候,默认是axis=1
arr.sort(),直接是在原数组上排序
4.3.5
一些集合的操作函数,比如 unique (唯一值,并排序,类似python里的set函数),intersect1d(x,y).两个数组x,y的交集,并排序
4.4 数组文件输入输出
把数组保存到文件,和从文件中提取数组
np.save("filename",arr),保存单个数组
np.savez("filename",a=arr,b=brr),保存多个数组,a和b 是字典的key
np.savez_compressed("filename",a=arr,b=brr),是将多个数组压缩保存文件,这里中文书中应该翻译有误"如果你的数据已经压缩好了...",看到这里时,我不是很理解,
因为前面并没有说的数组的压缩,查找了一下numpy的英文文档
numpy.
savez_compressed
(file, *args, **kwds)[source]¶Save several arrays into a single file in compressed
.npz
format.
应该是把多个数组压缩保存。
np.load("filename")提取保存的数组,如果是多个数组的文件,则根据保存时的key得到单个数组