为什么不建议学python(学python能干嘛)
大家好!今天让创意岭的小编来大家介绍下关于为什么不建议学python的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
创意岭作为行业内优秀企业,服务客户遍布全国,设计相关业务请拨打175-8598-2043,或微信:1454722008
本文目录:
一、Python 在编程语言中是什么地位?为什么很多大学不教 Python?
作者看着网上各种数据分析的知识泛滥, 但是没有什么体系,初学者不知道学哪些, 不知道学多少, 不知道学多深, 单纯一个python语言, 数据分析会用到那种程度, 不可能说像开发那样去学, numpy如果不是做算法工程师用到的知识并不多, pandas知识杂乱无章, 哪些才是最常用的功能等等, 作者不忍众生皆苦, 决定写一套python数据分析的全套教程, 目前已完成一部分课件的制作。需要说明的是, 作为一名数据分析师, 你应该先会一点Excel和SQL知识,相关的内容, 网上很多。但是, 即便你一点Excel和SQL都不会也不会影响这部分的学习 !目前作者整理的大纲如下:
第一章 python编程基础
1.1 python语言概述 1.2 数据科学神器--Anaconda介绍与安装 1.3 标准输入输出 1.4 变量定义与赋值 1.5 数据类型 1.6 流程控制语句 1.7 函数
1.8 面向对象编程 第二章 python数据清洗之numpy 2.1 核心ndarray对象的创建 2.2 ndarray对象常用的属性和方法 2.3 ndarray对象的索引和切片 2.4 ndarray对象的分割与合并 2.5 ndarray对象的广播(Broadcast) 2.6 numpy中的算术运算函数 2.7 numpy中的统计函数 2.8 numpy中的排序 搜索 计数 去重函数 2.9 numpy中的字符串函数 2.10 numpy中可能会用到的线性代数模块(后期机器学习会用到一点)
第三章 数据清洗神器pandas
3.1 pandas核心对象之Series对象的创建 常用属性和方法 3.2 pandas核心对象之DataFrame对象的创建 常用属性和方法 3.3 DataFrame对象的列操作和行操作 3.4 DataFrame对象的索引和切片 3.5 DataFrame对象的布尔索引 3.6 数据的读入与导出 3.7 groupby分组运算 3.8 数据合并与数据透视
第四章 数据可视化matplotlib seaborn pyecharts
4.1 包括常用图形的绘制,略
第五章 实战案列
5.1 拉勾网数据分析相关职位分析 5.2 boss直聘数据分析相关职位分析 5.3 珍爱网女性用户数据分析
第六章 机器学习
机器学习部分, 简单的算法会讲手写, 难的就用scikit-learn实现, 可能有小伙伴说, 这是调包侠干的, 小哥哥!小姐姐!哪有那么多公司, 那么多人自己干写算法的, 有几个人敢说他写的算法比scikit-learn写得好? 再说了, 你是数据分析师, 这些是你的工具, 解决问题的!不是一天到晚拉格朗日对偶性!先来个机器学习介绍, 然后如下:
6.1 K近邻算法 6.2 Kmeans算法 6.3 决策树 阶段案列:决策树案列(保险行业) 6.4 线性回归 岭回归 Lasso回归 6.5 逻辑回归 6.6 朴素贝叶斯 阶段案列:推荐系统(电商玩具) 6.7 随机森林 6.8 Adaboost 6.9 梯度提升树GBDT 6.10 极端梯度提升树Xgboost 6.11 支持向量机SVM 6.12 神经网络 阶段案例:Xgboost案例
------------------------------本节内容-----------------------------------------
python语言概述
在说python之前, 我们还是先来看看计算机软硬件的发展历史。
1 计算机硬件的发展历史
第一代计算机-电子管计算机(1946-1957)
无论如何,一项技术的突破必然伴随着其他行业的突破,简而言之,电子计算机的出现,前提必须有电子技术的进步,否则一切都是空谈!下面是我列举出计算机硬件的发展过程中, 一些比较重要的事件。
1906年, 美国的Lee De Forest 发明了电子管。在这之前造出数字电子计算机是不可能的。这为电子计算机的发 展奠定了基础。
1924年2月, 一个具有划时代意义的公司成立,IBM。
1935年, IBM推出IBM 601机。 这是一台能在一秒钟算出乘法的穿孔卡片计算机。这台机器无论在自然科学还是在商业意义上都具有重要的地位。大约造了1500台。
1937年, 英国剑桥大学的Alan M. Turing (1912-1954)出版了他的论文 ,并提出了被后人称之为"图灵机"的数学模型。
1937年, 美国贝尔试验室的George Stibitz展示了用继电器表示二进制的装置。尽管仅仅是个展示品,但却是世界上第一台二进制电子计算机。
1941年, Atanasoff和学生Berry完成了能解线性代数方程的计算机,取名叫"ABC"(Atanasoff-Berry Computer),用电容作存储器,用穿孔卡片作辅助存储器,那些孔实际上是"烧"上的。 时钟频率是60HZ,完成一次加法运算用时一秒。这就是ABC计算机。
1946年, 美国宾夕法尼亚大学,第一台通用电子计算机ENIAC (Electronic Numerical Integrator 和 Computer)诞生, 总工程师埃克特在当时年仅25岁。
这时的计算机的基本线路是采用电子管结构,程序从人工手编的 机器指令程序(0 1),过渡到符号语言(汇编),电子管计算机是计算工具革命性发展的开始,它所采用的进位制与程序存贮等基本技术思想,奠定了现代电子计算机技术基础。以冯·诺依曼为代表。
第二代计算机——晶体管计算机(时间1957~1964)
电子管时代的计算机尽管已经步入了现代计算机的范畴,但其体积之大、能耗之高、故障之多、价格之贵大大制约了它的普及应用。直到晶体管被发明出来,电子计算机才找到了腾飞的起点,一发而不可收……
20世纪50年代中期,晶体管的出现使计算机生产技术得到了根本性的发展,由晶体管代替电子管作为计算机的基础器件,用 磁芯或磁鼓作存储器,在整体性能上,比第一代计算机有了很大的提高。
第三代计算机——中小规模集成电路计算机(时间1964~1971)
20世纪60年代中期, 计算机发展历程随着半导体工艺的发展,成功制造了集成电路。中小规模集成电路成为计算机的主要部件,主存储器也渐渐过渡到 半导体存储器,使计算机的体积更小,大大降低了计算机计算时的功耗,由于减少了 焊点和 接插件,进一步提高了计算机的可靠性。
第四代计算机——大规模和超大规模集成电路计算机(时间1971~至今)
随着大规模集成电路的成功制作并用于计算机硬件生产过程,计算机的体积进一步缩小,性能进一步提高。集成更高的大容量半导体存储器作为内存储器,发展了并行技术和多机系统,出现了 精简指令集计算机(RISC),软件系统工程化、理论化,程序设计自动化。微型计算机在社会上的应用范围进一步扩大,几乎所有领域都能看到计算机的“身影”。
第五代计算机——泛指具有人工智能的计算机(至今~未来)
目前还没有明确地定义
2 简述计算机软件的发展历史
编程语言的发展
计算机软件系统的发展,也伴随着编程语言的发展。计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。
机器语言:简单点说,机器本身也只认识0和1,电路无非就只有通和断两种状态,对应的二进制就是二进制的1和1。
汇编语言:汇编语言只是把一些特殊的二进制用特殊的符号表示,例如,机器要传送一个数据,假设“传送”这个指令对应的机器码是000101,则人们把000101用一个特殊符号,比如mov来表示,当人们要用这个指令时用mov就行,但是mov的本质还是000101,没有脱离硬件的范围,有可能这个指令不能在其他机器上用。
高级语言:高级语言完全脱离了硬件范畴,所有的语法更贴近人类的自然语言,人们只需要清楚高级语言的语法,写出程序就行了,剩下的交给编译器或者解释器去编译或者解释成机器语言就行了,看,这样就完全脱离了硬件的范畴,大大提高了程序的开发效率。接下来我们就来看看高级语言的发展,高级语言非常多,我们主要看看比较经典的几个。
高级语言的发展
B语言与Unix
20世纪60年代,贝尔实验室的研究员Ken Thompson(肯·汤普森)发明了B语言,并使用B编了个游戏 - Space Travel,他想玩自己这个游戏,所以他背着老板找到了台空闲的机器 - PDP-7,但是这台机器没有操作系统,于是Thompson着手为PDP-7开发操作系统,后来这个OS被命名为 - UNIX。
C语言
1971年,Ken Thompson(肯·汤普森)的同事D.M.Ritchie(DM里奇),也很想玩Space Travel,所以加入了Ken Thompson,合作开发UNIX,他的主要工作是改进Thompson的B语言。最终,在1972年这个新语言被称为C,取BCPL的第二个字母,也是B的下一个字母。
C语言和Unix
1973年,C主体完成。Ken Thompson和D.M.Ritchie迫不及待的开始用C语言完全重写了UNIX。此时编程的乐趣已经使他们完全忘记了那个“Space Travel”,一门心思的投入到了UNIX和C语言的开发中。自此,C语言和UNIX相辅相成的发展至今。
类C语言起源、历史
C++(C plus plus Programming Language) - 1983
还是贝尔实验室的人,Bjarne Stroustrup(本贾尼·斯特劳斯特卢普) 在C语言的基础上推出了C++,它扩充和完善了C语言,特别是在面向对象编程方面。一定程度上克服了C语言编写大型程序时的不足。
Python (Python Programming Language)--1991
1989年圣诞节期间,Guido van Rossum 在阿姆斯特丹,Guido van Rossum为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。第一个Python的版本发布于1991年。
Java(Java Programming Language) - 1995
Sun公司的Patrick Naughton的工作小组研发了Java语言,主要成员是James Gosling(詹姆斯·高斯林)
C(C Sharp Programming Language) - 2000
Microsoft公司的Anders Hejlsberg(安德斯·海尔斯伯格)发明了C,他也是Delphi语言之父。
当然现在还有一些新语言,比如2009年Google的go语言,以及麻省理工的julia等。
3 为什么是Python
Python有哪些优点
1 语法简单 漂亮:我们可以说Python是简约的语言,非常易于读写。在遇到问题时,我们可以把更多的注意力放在问题本身上,而不用花费太多精力在程序语言、语法上。
2 丰富而免费的库:Python社区创造了各种各样的Python库。在他们的帮助下,你可以管理文档,执行单元测试、数据库、web浏览器、电子邮件、密码学、图形用户界面和更多的东西。所有东西包括在标准库,然而,除了它,还有很多其他的库。
3 开源:Python是免费开源的。这意味着我们不用花钱,就可以共享、复制和交换它,这也帮助Python形成了丰富的社区资源,使其更加完善,技术发展更快。
4 Python既支持面向过程,也支持面向对象编程。在面向过程编程中,程序员复用代码,在面向对象编程中,使用基于数据和函数的对象。尽管面向对象的程序语言通常十分复杂,Python却设法保持简洁。
5 Python兼容众多平台,所以开发者不会遇到使用其他语言时常会遇到的困扰。
Python有哪些作用
Python是什么都能做,但是我们学的是数据分析,我们看看在数据分析领域Python能做什么。
数据采集:以Scrapy 为代表的各类方式的爬虫
数据链接:Python有大量各类数据库的第三方包,方便快速的实现增删改查
数据清洗:Numpy、Pandas,结构化和非结构化的数据清洗及数据规整化的利器
数据分析:Scikit-Learn、Scipy,统计分析,科学计算、建模等
数据可视化:Matplotlib、Seaborn等等大量各类可视化的库
所以说总结, 为什么数据科学选的是python, 最重要就是两个原因:
1 语法简单漂亮
2 大量丰富免费的第三方库
二、Python 在编程语言中是什么地位?为什么很多大学不教 Python?
十分想炮轰一下,所谓「大学学习的基本设计思想,老师教授一两张语言即可,关键自己得去钻研,看自己喜欢什么就去多看多练习多钻研才可以」根本就站不住脚。首先,既然是教授一两门语言,为何这门语言是C而不是python?教授什么语言,跟你怎么才能把计算机语言写好跟你要钻研,完全就是两回事。(我并不否认强调学习要有钻研的精神,我十分认同在没有其他办法的情况下用这种论调来自我安慰,但是认为钻研的精神最重要,学习什么东西不重要,并不是一个让人停止思考的好答案)从国内的计算机科学教育来看,「计算机语言」(Computer Language)其实从来没有获得很高的地位,在认知上就没有真正把计算机语言拉到一个较高的级别来看,相反的,可能还有鄙视代码,觉得语言只是知识的底层,不是上台面有得研究的东西。出现这种情况的原因我不大清楚,反正我身边很多的老师其实都是平时跑跑算法就行了——用自己用熟的C来跑,完全足够了。如果你的代码只是用来演示一个小程序的算法,实际上就是一个伪代码到可以编译的代码的转变,其实真的是没有多大区别了。想想哪些老师在教计算机语言?基本都是教数据结构啊、算法啊之类的拉过来客串一下,这些老师往往没有面对复杂的系统的经验,也没有对一个有表达力的语言的需求在。而计算机语言的区别,所谓的表达力,优雅,抽象的角度,思维,全部都不是可以发到paper的东西,都是确确实实需要将语言工具用于应用和抽象才能体会到的。老师实际上一无使用一门好的语言的需求,二也很少做这些研究的。计算机语言被拆成了很多门课,从语言、抽象和设计的角度来观察语言本身,大学应该是没有这种课程的。以我们学院来说,程序设计1根本就不是教程序设计,就是一个充水的C语言参考指导,程序设计2也不是教程序设计,就是一个充水的C++语言参考顺便教你用C++的OO语法来实现点数据结构和算法。你真正使用计算机语言是因为你要写数据结构和算法的作业。然后呢?因为要学计组你才需要学点汇编,一些老师可能对编程语言最大的体会是win32写个贪吃蛇。然后等到你大三了你学「编译原理」的时候是教你如何实现一个编译器(而不是如何设计一门语言,用语言来思考和抽象)。大学既不是专才教育,也不是通才教育。大学是基本能力教育,它只有义务教会大多数学生在他专业领域中的基本能力。这句话本没有错,但是这句模糊的话,实际上却成为了放弃一个更好的选择的托词。大学当然不是专才教育,大学是基本能力教育也没有错,但是,使用C一定是掌握基本能力的最好选择吗?上面扯的「python不够clean」,「Python 的集成性并不比 C 好」也站不住脚。python在大部分情况下都比C要clean多了吧。。。大学教育哪里会在乎你的集成性。大家用 Python 是因为它的资源能够帮助很多人解决问题,这个大致我也认同。但是,python除了类库丰富,还是有很多好东西的。从语言上看,python远远比C更适合教学啊。比如,python会让你的 1 < a < 2 是对的,不会让你栽入C的所谓的 (1<a) 是一个布尔值,然后跟2比较——这种设计真的是对的吗?人类真的就应该迁就这种设计吗?然后不要说 scanf("%d", &a) 这个a前面要加&这种了。你不是在学习程序语言设计,你是在学习如何躲开C的坑。。。好吧,你说学习C可以了解底层——你确认要在程序语言设计的课程里面来学习计算机底层真的很有意义而且值得坚持?新人如果真的要学计算机语言的话,还是跟着MIT从python开始吧。不推荐C、不推荐C++、不推荐javascript、不推荐haskell、不推荐汇编、不推荐ruby,啃的下的可以试试看SICP里面的scheme,不然python也是个不错的选择。然后,C和C++一定要学好。。。haskell、lisp这些FP也挺有趣的可以看看。。。。不要挑热门的,不要挑应用广泛的,挑真的适合学习,能够启发你看到本质的。ps:据说我院大三有门专选是python,然后还有haskell这种专选。了解了课程设计的动机和目的,其实这些都挺自然的。
三、为什么学不好Python
1. Python 易于学习
好吧,相较于其它许多你可以拿来用的编程语言而言,它“更容易一些”。Python
的语言没有多少仪式化的东西,所以就算不是一个 Python 专家,你也能读懂它的代码。我的经验是,通过实例来学习和教授 Python
要比采取同样的方式去接触比方说 Ruby 或者 Perl 更加容易,因为 Python 的语法里面条条框框以及特殊的处理场景要少得多。
它所专注的并非语言表现的丰富程度,而是你想要用你的代码完成什么。
2. Python 让你能用少量的代码构建出更多的功能
Python 能带给所有开发者一种快速的学习体验。通过实践,你可以在最多两天之内轻松实现一个具备基础功能的游戏 (而这还是在对编程完全不了解的情况下)。
另外一些让 Python 成为一门引人注目的编程语言的因素就是它的可读性和高效性。
3. Python 是一门多才多艺的语言,更是一个平台
尽管它比我的许多读者年纪还要大,但是仍然受到高度的关注,因为它可以被应用于如今你所能想得到的相当多的软件开发和操作场景。要管理本地或者云基础设施吗?Python可以。开发网站OK,它也能行的。需要处理一个
SQL 数据库?可以。需要为 Hive 或者 Pig 定制一个功能?能做到。只是想为自己构建一个小工具,Python
就是最好的选择。需要一门支持面向对象设计的语言,Python 的特性就能满足啦。简而言之,将 Python
了解得更加深入一点点,就能让你具备可以适应范围更宽泛的工作角色的技能。
四、如何看待《笨办法学python》第三版不建议学python3
最好学习 Python3 。因为你3转2很容易,而且可以早早避免编码等初学者会踩的坑。等到实在需要 Python2 的包时在转2也不迟。
关键是一定要用 Python3 成功入门。
注意用 Python3 不要犹豫
注意要入门 不要看书半途而非
注意最好用 「Python学习手册」 这本书, 看完。
回头看看笨方法,这个系列就是垃圾,又臭又长,示例弱智,内容浅薄。
不能否认对于时间的初级学习者来说还是有用的,但对于有一定基础和想快速深入了解的人来说,太坑爹。
这么看来,萧大说的有道理,只有 「Python 学习手册」是唯一的可用的参考书了…哈哈
以上就是关于为什么不建议学python相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读: