学习大数据时,一定要注重这8个Python小细节,让你工作事半功倍_在大数据背景下谈谈python是如何改变你的学习和工作方式的

本文介绍了Lambda表达式、map()和filter()函数在Python中的使用,展示了如何结合它们操作列表和数组。同时讲解了Arange和Linspace生成数组的方法,以及Pandas中axis参数的应用。文章还涉及Pandas的concat(),merge(),join()和Apply函数,以及数据表操作的最佳实践。
摘要由CSDN通过智能技术生成

使用生成式:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输出的结果也是 [1, 4, 9, 16]

2、Lambda 表达式

明明这个函数用不了几次,每次都要写一大串函数构建代码,是不是很累?别怕,Lambda 表达式来救你!Lambda 表达式能方便地创造简单、一次使用而且匿名的函数对象。基本上,它们让你无需费心构造一个函数,而是直接使用这个函数。

Lambda 表达式的基本语法是:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

欧剃汉化,

要记住,Lambda 表达式创造的函数和普通的 def 构建的函数没什么不同,只不过函数体只有单独一个表达式而已。看看下面这个例子:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输出的结果是 10

3、Map 和 Filter 函数

一旦你掌握了 Lambda 表达式,将它们与 map 或 filter 函数一起使用,可谓是威力无比。

具体来说, map() 函数接收一个列表,和一个函数,它对列表里的每个元素调用一个函数进行处理,再将结果放进一个新列表里。下面这个例子中,map() 函数遍历 seq 中的每个元素,把它乘2,再把结果放入一个新列表,最后返回这个列表。最外面一层 list() 函数是把 map() 返回的对象转换成列表格式。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输出的结果是 [2, 4, 6, 8, 10]

而 filter() 函数略有不同,它接收一个列表,和一个规则函数,在对列表里的每个元素调用这个规则函数之后,它把所有返回值为假的元素从列表中剔除,然后返回这个过滤后的子列表。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输出的结果是 [3, 4, 5]

4、Arange 和 Linspace 函数

为了快速方便地生成 numpy 的数组,你一定得熟悉 arange() 和 linspace() 这两个函数。这两个函数分别有自己的特定用法,不过对我们来说,它们都能很好地生成 numpy 数组(而不是用 range() ),这在数据科学的分析工作上可是相当好用的。

arange() 函数按照指定的步长返回一个等差数列。除开始和结束值之外,你还可以自定义步长和数据类型。请注意,给定的结束值参数是不会被包含在结果内的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输出的是一个数组对象: array([3, 5])

linspace() 函数的用法也很类似,不过有一点小小的不同。 linspace() 返回的是将给定区间进行若干等分以后的等分点组成的数列。所以你传入的参数包括开始值、结束值,以及具体多少等分。linspace() 将这个区间进行等分后,把开始值、结束值和每个等分点都放进一个 NumPy 数组里。这在做数据可视化以及绘制坐标轴的时候都很有用。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输出的是一个数组对象: array([ 2.0, 2.25, 2.5, 2.75, 3.0])

5、Pandas 中坐标轴(axis 参数)的意义

在 Pandas 里要筛掉某一列,或是在 NumPy 矩阵里要对数据求和的时候,你可能已经遇到过这个 axis 参数的问题。如果你还没见过,那提前了解一下也无妨。比如,对某个 Pandas 表这样处理:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在我真正理解之前,我基本上每次要用到 drop 的时候,都得去重新查询一下哪个 axis 的值对应的是哪个,多到我自己都数不清了。正如上面这个示例,你大概已经看出,如果要处理列,axis 要设成 1,如果处理行,axis 要设成 0,对吧。但这是为什么呢?我最喜欢的一个解释(或者是我如何记住这一点的)是这样的:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

获取 Pandas 数据表对象的 shape 属性,你将获得一个元组,元组的第一个元素是数据表的行数,第二个元素是数据表的列数。想想 Python 里这两个元素的下标吧,前面一个是 0,后面一个是 1,对不对?所以对于 axis 参数,0 就是前面的行数,1 就是后面的列数,怎么样,好记吧?

6、用 Concat、Merge 和 Join 来合并数据表

如果你熟悉 SQL,这几个概念对你来说就是小菜一碟。不过不管怎样,这几个函数从本质上来说不过就是合并多个数据表的不同方式而已。当然,要时刻记着什么情况下该用哪个函数也不是一件容易的事,所以,让我们一起再回顾一下吧。

concat() 可以把一个或多个数据表按行(或列)的方向简单堆叠起来(看你传入的 axis 参数是 0 还是 1 咯)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

merge() 将会以用户指定的某个名字相同的列为主键进行对齐,把两个或多个数据表融合到一起。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

join()和 merge() 很相似,只不过 join() 是按数据表的索引进行对齐,而不是按某一个相同的列。当某个表缺少某个索引的时候,对应的值为空(NaN)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

有需要的话,你还可以查阅Pandas 官方文档 ,了解更详细的语法规则和应用实例,熟悉一些你可能会碰到的特殊情况。

7、Apply 函数

你可以把 apply() 当作是一个 map() 函数,只不过这个函数是专为 Pandas 的数据表和 series 对象打造的。对初学者来说,你可以把 series 对象想象成类似 NumPy 里的数组对象。它是一个一维带索引的数据表结构。

apply() 函数作用是,将一个函数应用到某个数据表中你指定的一行或一列中的每一个元素上。是不是很方便?特别是当你需要对某一列的所有元素都进行格式化或修改的时候,你就不用再一遍遍地循环啦!

(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
辄止,不再深入研究,那么很难做到真正的技术提升。**

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 28
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值