-
学python认识的一位丑姐姐,哈哈哈哈哈哈,不会怪我吧。。首先来点有趣的,然后我我们进入主题,diudiudiu~
-
第一,读取数据
我们用numpy是用来处理数据的,那么首先呢就要读取数据
import numpy
numpy.genformtxt(“txt文件”,delimiter=",",dtype=str)
说明:1.numpy.genformtxt(~~~~~) 这是固定格式,有其他的话就是在括号里多加点规则设定,其他部分设定下面会说明。 2.delimiter=',' 一般用的逗号分隔符的txt文件嘛,有其他分隔符的文件时把逗号换掉。 3.dtype=str 读入数据时定义里面的元素类型为字符串类型,当然也可以定义为整型int、浮点数float等等类型都可以,但这时字符们就会不听话,乱显示哦%¥……&&*¥#!@!@¥%。所以还是默认定义为str类型比较好点。
-
第二,功能
当我们把想要的数据读取进来以后都可以进行那些骚操作呢?骚不骚就看你有没有清晰的认识他的功能,要说到功能首先不得不说说他的一些构造函数了
详解:
1.numpy.arange()
如图2-1-1所示:numpy.arange()创造出了一个数组array,当然这种只属于numpy,是不是突然恍然大悟,numpy这么牛逼,生成的东西也是他的,你的可以是你的,我的必须一直是我的,哈哈哈哈哈哈~。
说正事,既然随随便便搞个数组也属于numpy,那么一定有他的功能了
2.numpy.array([~~~~~~~~])
如图2-2-1所示:对,你猜的没错,它就是传说中的二维数组。可以说,这就是numpy最核心的结构。当然,也可以构造三维、四维、五维,piupiupiu~无穷维,都没问题,但我们用的最多的就是一维和二维了。
那既然数字都有了维度,那有维度之后它们有什么用呢?请看下面功能
3.index索引
什么是索引功能呢?
官方解释:索引是为了加速对表中数据行的检索而创建的一种分散的存储结构。索引是针对表而建立的,它是由数据页面以外的索引页面组成的,每个索引页面中的行都会含有逻辑指针,以便加速检索物理数据。
当然官方的解释也太官方了,但我们可以从中挑选几个词语:1)表:不就是表格嘛,看看我们上面由numpy.array生成的二维数组像不像一个表格?数组中的元素是不是对应表中某行某列的内容?当然,答案是Yes。2)加速检索:是不是要通过快速的仔细的滴水不漏的挖地三尺的查找在那张表里的某个信息?当然,答案还是Yes。3)其他不用看了,上面两条就够了~呵呵
如图2-3-1所示:
小小的表格已经紧握在爪,当然初步学习就不导入真正的表格了,就当这是一张4千行4千列的表格信息。
案例1:猪计划-Jack是某某组织的头目,他想通过表格中的信息发现13的一些行踪,并把它变成猪
设计方案:第一步:因为表格的数据量太大,我们使用二分法来实行,具体操作:把表格撕成两半来找
如图2-3-2所示,成功的将名单撕成了两份,那我们先从b[0]开始找
猪计划 第二步、我们用粗暴的大干快上的方法(bool索引)从其中一份表格里查找13的蛛丝马迹,那就从b[0]开始吧
如图2-3-3所示,我们已经成功的,完成了猪计划行动。本来还想着分几步走,结果没想到numpy这么强大,二分法也好用。但既然计划已经完成,那我们还是把信息表格还回XX信息中心吧,以免惹是生非,但被撕成了两半,首先得拼起来吧,那好办
第三步、猪计划行动收尾,把被撕成两半的信息表粘到一起,回想下当初是横着撕的,那我们就横着拼回去vstack方法。
如图2-3-4所示:我们用vstack顺利的把它们拼好了,当然拼接方法力还有横向拼接hstack。
总结:我们在图中用了最简单的很容易上手的numpy索引方法,因需求而异,怎么方便怎么索引。当然,numpy还有很多索引的手段,比如切片、按行索引、按列索引、索引多个值等等。除此之外numpy中还有很多很实用的方法和特性,比如最大值最小值、整体赋值、按行列的加减乘除、ndim维度、size长度、np.zeros、np.ones初始化0,1矩阵、np.random系列sin、linspace、.T行列转换、.view浅复制、.copy、tile行列扩展、sort排序、argsort行列排序并拿到索引位置等等太多了,我就不一一介绍了,使用起来都是非常方便的,这是我第一篇博客,希望大家喜欢,祝大家生活愉快,事业顺心。