钱小菲,经管之家CDA数据分析研究院讲师, 从事互联网及电子商务方向的数据分析与数据挖掘工作. 研究方向为客户关系管理, 推荐系统的开发以及在大数据平台的落地实施。
问答汇总:
Q1: 坛友飞花一地:
小菲老师您好,请问Python做CRM和推荐系统与其他软件比有什么优势呢? 有哪些劣势吗?
A1:
这个我就不单独说这一两个领域了,总的来说Python的优势就是开发快,各类库很全易于阅读易于扩展,所以可以很快的把你的想法实现出来。但是在运算的效率方面,呃,这就是程序员的领域了,
总之很多测试的工作会用Python来做,最后的实施部署可能会用其他的语言再来写一遍吧。
Q2: 坛友生如夏花绚烂:
作为一个文科生,Python和R哪个更适合呢?
谢谢老师
A2:
我得提一下,首先没有哪个编程语言适合哪类人群的说法(更何况还是按文理这种粗暴的方式来分)重点是在于个人的习惯和喜好。你都接触了之后自然就知道自己喜欢用哪个语言了,你没看错我说的就是喜欢。所以最后问题其实是看你喜欢用哪个而不是适合用哪个。
Q3: 坛友lisahulisa:
小菲老师,Python会不会超越R成为主流软件啊?
A3:
在数据分析的大领域下。Python语言和R语言并没有很大的冲突,Python在工业界使用较多,而R主要在学术界用的多,所以这两个放在一起也不好比,但是从工业的应用角度来说,Python是比R实用多了,至于哪个将来发展的更好,这个谁也说不准,但是开源软件如果有了工业界的支持都会发展的比较好。当然,我个人是更看好Python的。
Q4: 坛友yangnay:
钱老师,您好!我有两个问题:
1.请问在python中有没有类似matlab中的clear命令,可以清楚当前所有变量呢?
2.在python中一个print一个变量时,有时它只会给出该变量的内存地址,我该如何查看该内存地址中存储的内容呢?
A4:
这个可能是出于你使用matlab的习惯吧,但是在python里面基本不会这么操作,如果你非得这么做的话在IPython里面(或者是jupyter)可使用魔术命令 %reset来清除所有变量。(但是很不建议这么做,你用多了就知道了,在python里面完全没必要。)
在纯Python互交式命令行里面(但是感觉做数据分析一般也不会用纯Python的命令行),你可以自己写一个释放的函数(比较危险的操作)。
至于你说的print出来的是内存地址或者是一个对象名字而不是你要的内容。对于不同的对象有不同的方式
比如说图形的对象一般会在开始使用%matplotlib inline(jupyterNB中)来显示图像
如果是一些map对象,zip对象之类的数据结构等等,一般的操作是转换为其他的对象(可以打印显示内容的)再打印,具体怎么转换可能需要看对象存储的内容是什么了。
Q5: 坛友franky_sas:
钱老师,请问在生产环境中用Python做大规模运算,是否会有性能问题?如果有,应该怎么解决?
A5:
一般都是通过做代码的优化和使用分布式运算来解决,也有可能用其他语言重新写。具体的我不太清楚,真正投入生产的话一般会有很厉害的工程师来解决的。这个感觉已经脱离了一个 正儿八经的分析师的范畴了…
Q6: 坛友wxpercy:
钱老师,您好!我是做大数据处理的,请问您觉得R和Python各有哪些优势和劣势?谢谢!
A6:
如果是大数据的话,我个人建议还是选择使用Python,虽然R也有对接到大数据的平台,但是总的来说生态易用性,实施部署等等都不如Python。而且在处理大数据集的情况下使用Python的学习成本比使用R要低。
Q7: 坛友feixueshuai:
钱老师,您好!我是一个在调研公司做数据分析的,主要使用spss。现在想学习python做数据挖掘和可视化。请问老师,作为一个文科生,学习数据挖掘有前景么?与数学专业同学比起来是不是会有很大劣势?另外,能否分享一下python的学习经验和学习路径?非常感谢老师!
A7:
关于文科生的问题参照前面的回答,何况你的工作经验还是很有优势的。如果背景略差,只是需要付出的时间多一点而已,本质来讲也就是别人比你提前学了一部分内容,花点时间很快就能补回来了。学习Python的话,新手刚开始确实会有那种不知道从那儿下手的问题,尤其是没有编程基础的,解决的方式一般都是找一个教程反复练习(这里说的很明确:“一个教程”,“反复练习”)一个教程是因为一般一个比较好的博客或者教程有他自己的思路,按照他的思路来一定能学到东西,反复练习是因为很多初学者会以为自己会了,但是到用的时候会发现自己不会(尤其是没有编程基础的容易出现的问题),一般等你把一个教程重头开始练习几遍慢慢入门之后,后面的学习你就知道怎么去做了。当然这个是针对无编程基础的,有过编程经验的基本都知道怎么去入门。
Q8: 坛友jqs521:
钱老师,我目前主要在使用stata,请问python在哪些方面更加有优势呢?以及它有没有可能成为更加主流和强大的工具呢?谢谢
A8:
对于stata我并不熟悉,但是Python当前的发展很好,至于Python的优势,你可以看一起其他的回答。Python确实在逐渐的变为一个主流。所以,如果你有时间的话建议去学一下,对于提高自己的竞争力还是很有帮助的。
Q9: 坛友superluo1993:
钱老师,您好!
Python 中如何运行R代码,利用R的ggplot2画精美图表呢?
Python中如何解决内存不足,运行速度较慢的问题呢?
A9:
Python中可用通过rpy2调用r的功能,更多的可以参考https://rpy2.readthedocs.io/en/version_2.8.x/
不过如果你只是需要画图的话,没有必要,Python中实现画图的包还是很多的,从基础的matplotlib
到出图非常漂亮的seaborn,渲染速度快的bokeh,以及可以实现互交式的plotly。建议去尝试一下,说不定会给你惊喜。
Python有自动的垃圾回收机制,不太可能出现内存不足导致运行慢的情况出现,当然你把大数据集直接读进内存那谁也拦不住,多少内存也不会够的,这个也没法直接解决,只能通过其他的技术手段(分布式,分块运算)。所以不太明白你指的慢是什么,问题可以提的更具体一点。
Q10: 坛友xiehu156:
钱老师,您好!
请问使用Python分析客户,相较于R,作图方面是不是相对弱势一些?
A10:
python 的作图参考前面的Python中运行R的回答,Python现在的作图不会比R差。
Q11: 坛友巢州子:
钱老师您好,大数据挖掘最近比较热,可否请您就Python数据分析相关的书籍做一下对比推荐以及这些书籍阅读次序的介绍。谢谢您!!!
A11:
Python简单的入门的书籍比较多也有很多的博客,我前面有回答Python入门需要注意的东西。
简单的入门后关于数据处理的推荐《利用Python进行数据分析》
后续有《集体智慧编程》
推荐多了也没用,这几本先看着吧,书里的东西多思考,亲手写一遍代码会很有帮助。
个人建议书籍要挑好的买一两本纸质的放在手边,电子的不太利于你的学习。
Q12: 坛友行者路:
钱老师,你好,对于一个生态学专业的学生,您打算考研究生,需要掌握python软件操作吗?
A12:
个人觉得在一个鼓励全民学编程的时代,掌握一门编程语言是有必要的。而python又是对新手很友好的容易上手的语言,有时间就学一下吧,真的可以大大的提高你的竞争力。
Q13: 坛友NK-donkey:
钱老师您好!~ 以后想从事数据分析行业。。目前熟悉stata,对spss,r会一般操作。自己现在需要准备什么呢?在理论上还是实践上需要突破,马上进入研二下学期,很着急呀。。希望能回复。。。这python是数据分析必备的吗?一名的数据分析师,需要get哪几种技能呀
A13:
Python的实用用性很强,但是我也不能说是必须的。我觉得你现在需要的是拿到好的数据分析公司的实习,这个对你来说应该意义更大,没有具体的目标谁也没办法说你必须要会什么。
Q14: 坛友candyl6:
钱老师您好,我的研究方向是信息系统这块的预测研究,导师让我们学习下python以及R之类的语言,请问这类语言在预测分析中的应用多吗?或者是怎么应用的?谢谢
A14:
具体的这个领域我也不太清楚,这个问题你的导师比我清楚吧...
不过在Python和R间选择的话,如果你是打算以后做科研,那个么你可能两个都要学。如果不做科研,建议先学习Python。
Q15: 坛友真斧锤精通:
想问一下老师:
1. 之前用numpy和pandas,感觉很多问题,都少有人解答,中文的更甚,现在经常遇到自己编的被奇妙的报错卡住,不管是矩阵处理还是一些算法的实现,这一点上,听说R有更好的社区,解决问题相对更方便更容易,老师的评价也是如此吗?
2. 最近在向神经网络方向学习,感觉需要补充线性代数知识,但国内教材好糟糕,老师有什么推荐的学习姿势吗?
A15:
我是用的时候遇到的问题基本都能谷歌到答案,只有极个别的是咨询其他人解决的,很多问题得不到解决不太可能吧,并且Python的文档支持已经是非常好的了。至于R的社区因为我用的少所以关注的也少,但感觉不太可能比Python做的更好。
关于学习资料我基本都是按需去网上查各类资料文献和博客,相比之下买的书倒是很少的,也不好贸然给你推荐。