如何系统地学习Python 中 matplotlib, numpy, scipy, pandas?

链接:https://www.zhihu.com/question/37180159/answer/761102349

编辑:深度学习与计算机视觉

声明:仅做学术分享,侵删

最近在学习python绘制图形的相关知识,学习到了这几个库,所以想请教一下各位知友。希望用python来做数据挖掘相关的任务。

想问问各位知友,python做数据挖掘是否足够强大?学习数据挖掘需要学习哪些知识呢?我是一个本科生,本科学习的话能从事数据挖掘相关工作吗?

作者:Evan
https://www.zhihu.com/question/37180159/answer/303839224

对于这个问题,我觉得我还是自己来宣传一波干货哈哈。

对于题主的问题,说说我的观点:

1.首先python做数据挖掘是绝对足够强大的,虽然,现在统计,数据分析类的很多论文还是R语言用的比较多,但是,Python本身也拥有强大的数据计算库的可视化工具库,这个题主已经列出。把这几个库基本学会了,那对于数据挖掘编程任务还是有基本的保障的!而且在机器学习,人工智能领域,主流是Python,数据挖掘和机器学习,人工智能很近,很多理论相通,之后若想转机器学习,人工智能学会这些库还是有很大优势的。

2.然后数据挖掘需要学习哪些知识,一个是数学:线代,概率论,凸优化等,这个很大程度上决定了天花板。一个是算法,数据挖掘算法有很多,什么决策树,逻辑回归,BP网络等等,这些事理论知识,当学习他们是很有必要的,因为你对一个模型算法了解的越多,你就会发现它的局限性越大。对于调参调包时有很大帮助。还有就是编程,上面都是纸上,正真强体现在成果上,那这些库的理解就至关重要了!其他比如英语,计算机基础,很有必要,但我们可以先把上面的学好。

3.本科,学历我从来都不觉得是一个问题,再说,很多研究生....(省略吐槽)。只要有兴趣,现在开始,未来在等你(鸡汤味有点重,见谅)

最后,推荐我的专栏的一个系列总结:

numpy:快速存储和处理大型矩阵,主要是记住numpy特点

Numpy复习总结(一)https://zhuanlan.zhihu.com/p/32955108

Numpy复习总结(二)https://zhuanlan.zhihu.com/p/33045644

pandas:主要是思想和基本操作,各种函数不要背,浪费时间的。

pandas复习总结(一)https://zhuanlan.zhihu.com/p/33122239

pandas复习总结(二)https://zhuanlan.zhihu.com/p/33229372

matplotlib:还是主要记住思想和基本操作,各种函数不用背,多实践。

数据可视化工具matplotlib复习总结https://zhuanlan.zhihu.com/p/33299777

作者:知乎用户
https://www.zhihu.com/question/37180159/answer/80919616

首先,下载一个 anaconda,这是一个 Python 发行版,你需要用到的关于科学计算、数据处理的东西基本上都有了。
然后,去图书馆借一本《用 Python 做科学计算》忽略掉环境配置的部分,把里边关于 numpy 和 matplotlib 的内容看了。其他的部分根据自己需要选择阅读。一般来说每一个科学计算的库会自成一套体系,但是绝大多数都会基于 numpy,所以 numpy 必须学会。但是你也不用每个模块都用过,知道常用的函数和 numpy 的设计模式就好。matplotlib 是绝大多数绘图库的基础库,所以也绕不过去。
再然后,打开你需要的库的官网比如 pandas,一般都会有 getting started,先看完上个手。然后直接看 User Guide 或者 Tutorial。

之后根据自己的需求定向学习就好。每个第三方库都有自己内在的设计逻辑,比如 sklearn 就是围绕着 fit 和 predict 两个函数来做的,默认行向量是样本啦 pipline 啊之类的。pandas 核心就是 DataFrame 即就是带有 index 的 numpy 数组等等。学习一个库,重要的就是要学习这个库的内在的设计逻辑,这些一般都在 document 或者 User Guide 里边提了。并不需要每个功能/函数都记住,大致知道他有某方面的功能就好了,当你有某个功能的需求的时候猜一下然后直接 Google 就好。

比如我想求一个线性方程组的解,知道了内在逻辑闭上眼睛猜一下也知道这个函数不在 scipy 中就在 numpy 中,于是 Google 一下:solve linear equation numpy,第一条就是:

再比如,我想要合并两个 pandas 的表。闭上眼睛也知道 pandas 肯定有这个功能,数据库里边学过类似的操作叫做 Join,所以就 Google 一下:

看第二条结果,直接就是三个解决方案,读一读对比一下就好。

常用的函数查两遍之后你也就背下了,这样过一段时间的使用后基本上你就熟练了。对某个库有兴趣想要深入的话可以直接去看他的源代码。就酱紫,这就是所谓的系统方法~

作者:保一雄
https://www.zhihu.com/question/37180159/answer/230932556

题主的问题主要是两个方向,一是如何系统学习Python中跟数据分析&数据挖掘相关的库,二是对本科生从事数据挖掘行业的疑问。

先来讲讲如何系统地学习Python中有关数据分析&挖掘相关的库

什么是系统地学习?可能有人会觉得这是个伪命题,个人觉得,系统地学习就是一个先搭知识框架体系然后不断填充知识,不断更新迭代的过程。类似于盖楼房,先做地基,再往上一层一层走。

既然要系统地学习Python中有关数据分析&挖掘相关的库,那么pandas, numpy, scipy, matplotlib, 以及scikit-learn就是知识框架体系中的必备部分: pandas用来做数据处理,numpy用来做高维度矩阵运算,scipy用来做科学计算,matplotlib用来做数据可视化,scikit-learn用来做机器学习与数据挖掘

上面这几个库也就搭建了做数据分析&挖掘的经典workflow:拿到数据之后先要做一个数据的预处理(pandas+numpy+scipy),接着会要对数据包含的特征做一些可视化输出(matplotlib),之后需要提取特征&建模调参(numpy+scikit-learn),有了模型与结果,最后归纳整理做presentation & report.

在明确了知识框架体系和workflow之后,the next step is to get your hands dirty。找一找网上的开源数据集,选一个感兴趣的,自己动手做数据分析&挖掘项目。用一种project-driven的视角去熟悉使用Python关于数据方面的这几个库。在遇到问题的时候,网上搜一搜(知乎,谷歌,StackOverflow),或者直接看Python这几个库的documentation(pandas, numpy&scipy, matplotlib, scikit-learn),或者翻一翻《利用Python做数据分析》。

除了学习Python的这几个库之外,做数据挖掘,对于数学&统计方面还是有很高的要求,至少对于线性代数,概率论与数理统计,机器学习都要有一定程度的掌握。比如:在做数据挖掘项目的时候,scikit-learn库里面已经涵盖了基本的算法。对于特征、模型与算法的选择,一方面是书本知识的累积,你要掌握解决哪一类问题用什么类型的算法,而在具体问题时如何调用算法,则是要反复实践的。这就是不断填充知识 & 不断更新迭代,让自己从小白变成老司机。  

简言之,学习数据挖掘,入门很容易,进门之后放弃,更容易。

所以,多动手实践,多积累知识,重在平时,贵在坚持。

再来尝试回答本科生能否从事数据挖掘?

冷静思考现实:如果不是特别优秀的本科生,可能用人单位更倾向于去招一个学历更高的人。因为做数据挖掘是理论与实践相结合的过程,需要对算法进行深入的研究,更高学历的求职者,意味着他们在读取学位的过程中会有更多的时间与精力去做这累积。比如你是一家公司的老板,想要招聘一个数据挖掘岗位,可能你会更愿意跟拥有研究生学历的求职者先聊聊,普通的本科生可能会被打上"不靠谱"的标签。

难道本科生就真的没有机会了么

It depends. 学历只是相对,个人的努力与能力才决定了上限。多在读书的时候修一点相关课程,多积累一些个人项目,多参与一些数据挖掘比赛,这都是不断完善自己数据挖掘素养的过程。而且现在这样的平台也有很多,美国的kaggle算是数据科学社区的世界NO.1, 上面有很多用户分享了自己的成果,你也可以组队参加比赛。

当然,国内也有很棒的平台社区 --- Kesci, Kesci是目前国内唯一一个可以让你在线运行计算的数据科学平台,并将自己的成果在社区做分享交流。What's more,这里也有众多互联网公司,电商平台,以及Fintech企业通过在Kesci举办数据算法比赛的方式为自己招募人才。是不是又多了一个思路?哈哈。

学知识,做项目,打比赛,你的努力与坚持,会让你在数据挖掘的道路上有所斩获。

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 mthler」,每日朋友圈更新一篇高质量博文。

扫描二维码添加小编↓

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值