首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Numpy模块

最近在学数据分析的课程,把每节课的作业我会更新到公众号。学习最好的方法就是用,不做作业,光靠看是学不会的。我会利用作业尽可能把知识点说清楚,只要掌握知识点,其实看这篇文章和上课没啥区别,毕竟站在老师的视角有些东西他觉得简单,但是站在学生的视角不是一回事,我还可以把细节问题具体化,学起来更加通俗易懂。

Numpy是Python数据分析中最重要的库之一,我们用的Pandas就是基于Numpy开发的,还有高级科学计算库Scipy。他们之间的关系有点类似于 Numpy是数学,Scipy是科学,Pandas是物理。我们知道不管科学还是物理都是需要计算,需要运用到数学知识。

我们平时都会使用到Excel表格,比如下面这个样子的:

这是一个2维数据,可以看到图中有列(A,B,C),也有索引(1,2,3,4……)所以我们使用Excel里的公式时,选中单元格【投票 UTC 时间】,公式里的显示情况如下:

列名+索引= 【投票 UTC 时间】的位置

这个位置指向在编程语言中,就是指针

咱们操作Excel表格的时候,肉眼看着点击【投票 UTC 时间】这个单元格,对于Excel这个内部的程序而言,你使用了A1这枚指针。

物理地址 指针 单元格

像C语言中是存在指针的概念的,我们编辑C语言,需要在代码中写入指针,才可以运行成功。但是Python作为高级汇编语言,在实际编码的时候不需要编写指针,比起C语言而言更加方便、快捷。

上述的表格如果使用Pandas来读取,结果就是dataframe表格形式。既然pandas基于Numpy开发,我们细化dataframe就会发现,二维表格其实是由一维列表组成的。

还是刚刚的表格:

将二维的表格用“刀”一条一条切开来,这个表就成为了8条列表。但是列表在Python中是有指针存在的,可能你心里会疑惑:前面不是刚刚说了,Python中不需要写指针。不需要写不代表它不存在,因为指针的存在,列表的元素在Python中是分布在不同的内存中的,如果要做大量运算就会比较慢。

这里有个难点:为啥有指针就会慢。举个例子:你的语文老师让小学1年级的你写出“我爱你”三个字(你不会写,只能查字典)。

把人类比于计算机,它需要按照“我”、“爱”、“你”三个字的指针先去寻找,比如“我”在第45页第5个数字。“我”就标记为【45-5】,然后依次寻找“爱你”,然后取出三个字再合并。对于计算机而言,找的很快,合并也很快,万一这个操作需要执行1亿次呢?时间效果就很明显了,而Numpy则是把所有字都放在一页里面,“我”排在第45个,“爱”排在第3个,“你”排在第74个,然后合并三个字【45-3-74】。从逻辑上来看,效率是指针寻找的2倍不止。

对于普通人来说,这个感觉体验相差不大,但作为数据分析师,碰到几亿的数据都是可能的,一个操作能运行4个小时还是常见的事情。这时候减少一半的时间,对于不想加班的你来说是不是欣喜若狂呢?

导入Numpy

定义一维数组

注意:这里已经不是列表了,numpy将这个列表转化为了数组

定义二维数组

查看类型

修改数组元素

看看运行结果是否和你猜的一致

对于数组来说,不管是你用什么形式放入,它在读取的时候都是一维的。所以修改b的结果不是2,5,8变成了100,而是第二个列表变成了100.

那怎么修改单个的值呢?

运行结果

作业部分

利用numpy统计这些人各项指标的平均值,最大值,最小值,方差,标准差,再把这些人各项指标统计值的总和进行排序并输出。

熟悉pandas操作,上面的要求真的很简单,但不要忘了是需要使用numpy统计。

定义上图表格

为什么要定义person的类别:我们知道dataframe和Excel表格是有列的,数组arrary没有,需要咱们自己定义进去,除了名称还有数据类型。

输出结果

计算平均值

运行结果

同理:计算最大,最小,方差,标准差

运行结果

各指标汇总求和并排序

运行结果

新增知识点

Numpy中还有universal function功能,能对数组中的每个元素进行操作。

创建数组

a:从1开始每隔2个数创建一个值

b:从1-9之间创建5个值间隔为2

运行结果

需要注意:arange产出的int类型的数字,而linspace产出的是float类型。

同理,数组之间也可以进行运算

运行结果

对于数据分析而言掌握了以上Numpy的知识点就够用了。不要觉得数据科学很难,一点点剖析,一般人都学的会的。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181223G0O9XK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券