
1 Livid MOD PRO 人对于自己不熟悉的东西就会排斥,很正常,不过还是为你们老师觉得难过。 |
2 Mutoo 2013-11-30 14:40:43 +08:00 python 绝对是一门 science friendly 语言。有很多很强大的科学库,例如 numpy 。做 NLP 也是一流的。 |
3 9hills 2013-11-30 14:56:26 +08:00 用性能数据打脸 |
4 freeznet OP |
6 oloopy 2013-11-30 17:03:30 +08:00 做个猜测。Python适合research,但是对于某些specific的课程,Python会不利于与其他人交流。如果老师站在学生的角度,非常有可能做出这样的推荐,更多的用common language完成作业,并参与讨论。 |
7 lalalakakaka 2013-11-30 22:32:11 +08:00 |
8 freeznet OP @lalalakakaka 所以有推荐用octave咯 |
9 acheng 2013-12-01 00:23:54 +08:00 C++王道 以后你会明白的 当你做research 处理海量数据的时候 你才会发现py什么的脚本语言都是屎 那些numpy 或pypy 都是浮云 |
10 freeznet OP @acheng 并没有拒绝说用c/c++ 只是我觉得使用python更容易实现算法,如果需要处理海量的数据,也自然会选用c/c++,也不至于说脚本语言对于处理海量数据是屎吧= = |
12 csslayer 2013-12-01 01:30:40 +08:00 _> 我这边搞 PL research 的都用 Python 你说呢…… |
13 Kabie 2013-12-01 01:42:50 +08:00 毕竟你们是纯粹的算法课程吧?…………老师估计是担心在算法之外……动态语言本身对性能会有影响…… |
14 9hills 2013-12-01 01:51:42 +08:00 via Android |
17 davepkxxx 2013-12-01 02:41:11 +08:00 搞 research 还是用 C/C++ 吧,很多 Project 对性能要求很高。 |
20 bombless 2013-12-01 09:07:11 +08:00 我觉得 numpy 这些就类似 matlab 之类的那几款数学软件,是为了给用户提供一个方便的界面来使用 如果整个研究是你自己在做一套系统,那 numpy 这样的例子并不合适 C++ 有模板元编程,运算符重载,类型系统这样很方便的特性 对性能有要求的场合还有 Intel Parallel , C++ AMP 这样的工具 这些都是 Python 所没有的 |
21 FrankFang128 2013-12-01 09:08:15 +08:00 via Android 楼主有点断章取义 |
23 wuxqing 2013-12-01 10:17:12 +08:00 python + c/c++ 就可以了 |
24 9hills 2013-12-01 11:04:41 +08:00 via Android |
26 notte 2013-12-01 11:26:14 +08:00 cpp有雄厚的资源积累,research很多都是交叉学科的,相互之间沟通用通用的语言最好,像数值分析有Numerical.Recipes (C++)就没有python。 大数据处理也不是比谁的数据bit大,得看你要用那数据干什么,像混合整数非线性规划导入上GB的数据用c++也得算N年。 matlab的工具箱多,科研界很多新算法都是文献一出就附上matlab的工具箱了,这样后面的人看到文献后马上就可以用。 话说楼主你应该看文献少吧,多看看别人都用什么,做research不是在工具上标新立异,而是在思想上。学术界跟工业界是两码事。 |
28 wodemyworld 2013-12-01 16:41:05 +08:00 @acheng 别动不动就说什么语言是屎,nb你也写个python出来啊,不懂别瞎bb,以前youtube也是python写的,也没见效率低啊,自己能力挫别怪运行时慢 numpy都是c语言实现,代码都是高度优化的,做科学计算一点问题没有,性能很高,你如果说numpy效率低,请你用c++实现和numpy一样的算法,然后比较一样两者效率,你就用cpython运行时就行,连pypy都用不着 通常不用管语言层面的效率问题,不要把科学研究整成写代码的工作,算法才是核心,我就用python+c,Cpython运行时执行效率低的方法用C语言实现,然后用python调用,如果纯C写,编写代码时间就多了去了 |
29 sumrin 2013-12-01 19:34:50 +08:00 伟大的C BS 你们用python !!用ASP 路过 |
30 Ricepig 2013-12-01 21:22:30 +08:00 老师说的很对,目前来说在research领域基本还是C/C++是主流,而且很多软件的第一扩展语言都是它们。 从另一个角度看,你如果是项目负责人,你可以规定别人全都用python,但是在你还是螺丝钉的时候,就不要要求其他人都迁就你了。也就是说,你可能还没有牛到可以左右方案(语言)选择的层次,所以,忍忍吧少年。 最后,python提供的语法便利性,在你需要从底层实现一个高效的算法的时候,并没有它作为“粘合剂”时那么大。如果只是调用某个库,那是另外一回事。但是作为科学研究来说,C/c++的库我想也是比python的库多吧。 |
31 Ricepig 2013-12-01 21:23:48 +08:00 @wodemyworld 这位兄台,说法不是很有说服力啊。我不养猪我还不能说猪肉不好吃了? |
33 Ricepig 2013-12-02 00:58:24 +08:00 @ispinfx 你的类比更不贴切一点。我的类比中,用“养猪”类比“创造语言”,用“吃猪肉”类比“使用语言”。我回的贴中,逻辑是“你在创造不出python之前,就不能说python不行”,所以我说“我不养猪就不能说猪肉不好吃了” 供你参考。 |
34 acheng 2013-12-02 01:50:52 +08:00 @wodemyworld 试问你处理的数据量级是? 我以德服人 就不骂你了 |
36 wodemyworld 2013-12-02 08:52:09 +08:00 |
37 acheng 2013-12-02 08:57:21 +08:00 @wodemyworld 牛逼人啊 神经算法 怎么感觉你也神经了 我只是说py是屎而已 你却骂人 如果你骂C++是屎 我也不会骂你是贱人的 我打算学习py了 大侠 对于新手来说 学py2 还是py3 呢? |
38 wodemyworld 2013-12-02 08:58:29 +08:00 @Ricepig 我已经说了,通常python+c,真正遇到效率问题的时候核心算法改为c代码; c库多是因为c语言比python早出来好几十年,并不是c语言有多么让人离不开,现在大学里都用matlab了,效率还可以而且学起来很方便,你要说非得追求效率,等你把一个算法用c写出来的时候,人家用matlab连paper都出了,如果你的算法可以并行执行,那么还得做分布式计算,如果你用c去手工实现,等你把分布式框架都做完了,人家早就毕业了,怎么省事怎么来,做科学研究的人不是十分必要的话,不要往码农上面靠,没好处,着眼点就不对 |
39 acheng 2013-12-02 09:02:43 +08:00 @wodemyworld 有道理 不过我觉得用C/C++把基础库打好了 后续科研 不需要花很多时间去当码农了 只是起步阶段确实比matlab慢几拍 但是过了那个坎儿之后 顿时会觉得还是比matlab高端大气上档次 如果只是用matlab 面对海量数据的时候 那叫一个慢 有想法也难以实现 |
40 wodemyworld 2013-12-02 09:06:26 +08:00 @acheng 你说py是屎,那我和导师用的全是屎了?创造一门语言不是你想的那么简单,存在即有他存在的道理,我同学在MIT他们在学校学习的编程语言就是python(最早是lisp),那你认为MIT那些教授们选择python是因为它屎么?自己不懂可以问,不要不懂装懂说某某屎 ps1:“神经算法”没写清楚,是人工神经网络训练算法 ps2:建议学py2,还是有很多库尚未迁移到py3(例如Gevent),另外一些在py3还有bug;平时建议py2+C混用 |
41 acheng 2013-12-02 09:14:14 +08:00 @wodemyworld 今年在MIT学习了一周 他们py matlab 用得较多,我还是坚持用C++搞定了小组的项目。 py 的缩进 不习惯。。。 我想学习py主要用来搞定网络方面的程序。至于计算方面,还是调用lapack靠谱,不知py读取文件的效率如何呢 看来这里牛逼人挺多啊 我以后再也不装了 |
42 est 2013-12-02 09:32:05 +08:00 C/C++ python 都靠边站。做算法的,VC++6才是主流。Turbo Pascal 都能爆你们三条街。 |
44 ling0322 2013-12-02 13:52:08 +08:00 可以参照一下 http://radimrehurek.com/2013/10/parallelizing-word2vec-in-python/ 用Python+C实现的word2vec比谷歌纯C实现快了2.8倍 感觉Python速度快,喜欢先用Python测试效果,最后再用C++实现( |
45 luikore 2013-12-02 16:10:17 +08:00 靠谱老师都会跟你说: 用你喜欢的语言. 语言的性能差异在使用者的资质差异面前就是个无穷小量. |
46 Ricepig 2013-12-02 17:44:20 +08:00 @wodemyworld 我其实没有怎么提到效率问题,我强调的是C/C++在“当前”业界的普及状态,作为一种大家都懂大家都用的公共语言。这点是python无法做到的。以后的事情以后再说。i 你得考虑大家(同行、评审、同事)懂不懂,和现有的一些资源能不能对接 就这几点来说,python劣势是很明显的。 再重复一遍:python提供的语法便利性,在你需要从底层实现一个高效的算法的时候,并没有它作为“粘合剂”时那么大。有的时候,科学研究,一般偏向于“核心”,“底层”,而不是那么偏向“粘合剂” |
47 wodemyworld 2013-12-02 19:10:14 +08:00 |
48 Ricepig 2013-12-02 20:43:08 +08:00 @wodemyworld 我说的就是研究人员,你看一下paper里的代码,除了伪代码,基本都是类C代码(当然要去除语言方面的paper)。 企业是另一回事情,但是在科研的时候,和大家用差不多的语言、环境,能够更容易获得认同吧。 除非真的牛到藐视众生的程度,否则还是需要用大家都熟悉的东西吧。 最后,无论是R还是Matlab,c和c++对接都很方便,但是其他语言就不一定了。 |
49 wodemyworld 2013-12-02 20:57:03 +08:00 @Ricepig 在国内这种大环境下,你只能”哎“,重数量不重质量的paper,好像回到了高考,必须得用判卷老师熟悉的解题方法 科研这条路只有极少数人走到最后,自己”学“东西最重要;paper里用的什么语言真心没人关心,能看懂就行,谁也不会把整个代码往上贴,除非你是做“工程”的 |
50 Ricepig 2013-12-02 21:08:09 +08:00 @wodemyworld 国外不是也一样么,你用评审不熟悉的语言,评审会质疑你。 科研这条路,不是“学”东西最重要,而是自己有新东西最重要。 Paper里语言还是比较重要的,论文是不是能被评审理解。 不会把整个代码向上贴不代表不会贴代码,这点区别我想应该区分清楚。 |
51 Hualin 2013-12-02 23:40:16 +08:00 不要在意用什么工具,重要的是用这个工具做了什么。这话题吵着吵着就开骂了,敢问都发了几篇有意义的论文,看我能搜着你的宏图巨作不 呵呵呵 |
52 cadmuxe 2013-12-03 10:41:19 +08:00 看应用场景啦。听起来楼主是学cs的,研究算法什么的? 老师那么说是有道理的。毕竟用c能接触更底层。但是直接扩展到researchers 那就不好说了,什么自然语言处理,生物学,等等专业的研究人员,很多都用python。简单易用么。 |
53 maxiaojun 2013-12-13 00:08:27 +08:00 有些C/C++使用者人力吐槽,你告我C++怎split一std::string好? 另外,在前的前,有人了1行C++的代,果理第100的候就segmentation fault了 |
54 maxiaojun 2013-12-13 00:23:22 +08:00 真回答,除了系底的research,我得一般用high level languages肯定更容易抓住的重啊。竟C/C++暴露的程序的性能,安全性等可能很重要,但是和算法啥啊。的例子,有算法心整是int是long long? 有些算法研究者乾脆只管明,也得搞。反明言不是什太大的。 然社也是很重要的因素,全球看,Python的社并不差啊,用的人有的是,工具有的是。C/C++然使用人很多,但似乎各自政、不成社,然工具也不少。然MATLAB是另一以商件中心的社。 |
57 wangyongbo 2013-12-16 22:37:16 +08:00 搞研究的都好 牛逼啊。膜拜啊,五体投地。 |
58 chenzhao 2014-09-17 20:27:02 +08:00 哪个老师? |