掌握Python、NumPy和Pandas中的小技巧
问题
不止你一个人在编程时发现自己一遍又一遍地查找相同的问题、概念或语法。作者自己也经常这样做。
虽然在StackOverflow或其他资源上查找并不是困难的事,但它确实会让你放慢脚步,并会让你对语言的理解产生疑问。
我们生活在一个看似具有无限的免费资源的世界里,你随时随地都能搜索到你想要的东西。然而,这可能是祝福,也可能是一种诅咒。如果不能进行有效管理,过度依赖这些资源可能会养成不良习惯,从而导致长期的恶果。
就作者个人而言,他发现自己多次从类似的讨论主题中提取代码,而不是花时间去学习和巩固这个概念,以便可以在下一次自己重新编写代码。
这样做无疑会压制你的成长、创造力以及回忆语法的能力。
目标
最近,作者在Udemy上学习了名为Python for Data Science and Machine Learning的在线数据科学课程。在这期的讲座中,作者想起了一些在Python中执行数据分析时一直忽略的概念和语法。
为了巩固对这些概念的理解,并且为节省一些StackOverflow搜索,下面是作者在使用Python,NumPy和Pandas时总是忘记的东西。
作者为每个概念都写了一个简短的描述和示例,但为了方便读者,作者还展示包含视频和其他资源的链接,以便更深入地探索每个概念。
单行列表理解
每次需要定义某种列表时,编写一个for循环是很麻烦的,幸运的是,Python有一种内置的方法可以在一行代码中解决这个问题。语法可能有点难以理解,但一旦熟悉了这种技术,你会经常使用它。
选)
请参阅上面和下面的示例,了解如何使用for循环创建列表。不过在这里我们没有使用循环。
Lambda函数
你是否已经厌倦了为有限的用例创建一个又一个的函数? Lambda函数来拯救你!Lambda函数用于在Python中创建小型、一次性和匿名函数对象。
lambda函数的基本语法是:
请注意,只要有一个表达式,lambda函数就可以完成常规函数可以执行的任何操作。
map()和filter函数
一旦掌握了lambda函数,接下来学习如何将它们与map()和filter函数配成为一个强大的工具。
具体来说,map()函数通过对每个元素执行某种操作来获取列表并将其转换为新列表。 在本例中,它遍历每个元素并将其本身的结果映射到新列表。 请注意,列表函数只是将输出内容转换为列表类型。
filter函数接受列表和规则,就像map()一样,但它通过比较每个元素和布尔过滤规则来返回原始列表的子集。
Arange和Linspace
创建快速而简单的Numpy数组只需查看arange和linspace函数。每个数组都有它的意义,但这里是它们输出的NumPy数组,因为这对于数据科学来说通常更容易处理。
Arange是返回给定时间间隔内的等间距值。除了起点和终点之外,你还可以根据需要定义间距或数据类型。请注意,停止点是一个"截止"值,因此它不会包含在数组输出中。
Linspace和Arange非常相似,但略有不同。 Linspace在给定的时间间隔内返回等间距值。所以给定一个起点和终点,以及一些值,linspace会将它们均匀地放在NumPy数组中。这对绘图时数据可视化和声明坐标轴特别有用。
轴到底意味着什么?
在Pandas中删除一列或在NumPy矩阵中求和值时,你可能会遇到此问题。现在我们以删除一列为示例:
正如你可能从上面推断出的那样,如果你想处理列,将轴设置为1,如果你想要处理行,将其设置为0。但为什么呢?这里面有很多原因,但至少得知道这一点:
从Pandas数据框中调用shape属性可以返回一个元组,第一个值代表行数,第二个值代表列数。如果你考虑如何在Python中对其进行索引,则行数为0,列数为1,这很像声明轴值的方式。
(https://www.youtube.com/watch?v=PtO3t6ynH-8)
Concat、合并和加入
如果你熟悉SQL,那么这些概念对你来说可能会更容易。无论如何,这些函数本质上就是以特定方式组合数据框的方式。现在让我们回顾一下这些函数。
Concat允许用户在它下面或旁边追加一个或多个数据框(取决于你如何定义轴)。
合并将多个数据框组合在作为主键的特定公共列上。
加入,就像合并一样,结合了两个数据框。但是,它会根据它们的指数连接它们,而不是某个指定的列。
查看关于特定语法和更多具体示例的优秀文档,以及可能遇到的一些特殊情况。
Panda应用
可以把apply想象成一个map()函数,但它是为Panda数据框或更具体地为系列而设计的。如果你不是那么熟悉它,大多数情况下,它与NUMPY数组非常相似。
应用根据你指定的内容,向列或行中的每个元素发送一个函数。你可以想象在是多么有用,特别是对整个DataFrame列的值进行格式设置和操作,而不需要进行任何循环。
数据透视表
排在最后但并非最不重要的是数据透视表。如果你熟悉Microsoft Excel,那么你可能在某些方面听说过数据透视表。Pandas内置的数据透视表函数以DataFrame的形式创建电子表格样式的数据透视表。请注意,数据透视表中的级别存储在生成的DataFrame的索引和列上的MultiIndex对象中。
读者福利:知道你对Python感兴趣,便准备了这套python学习资料
对于0基础小白入门:
如果你是零基础小白,想快速入门Python是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等习教程。带你从零基础系统性的学好Python!
一、Python学习大纲
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、入门学习视频
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、python副业兼职与全职路线
上述这份完整版的Python全套学习资料已经上传CSDN官方,朋友们如果需要可以微信扫描下方CSDN官方认证二维码 即可领取↓↓↓
👉[[CSDN大礼包:《python兼职资源&全套学习资料》免费分享]](安全链接,放心点击)
![](https://i-blog.csdnimg.cn/blog_migrate/ea36696e89b97bda53f100482ef70ad1.png)