毫无基础的人如何入门 Python ?

一、写在前面

其实不止是 Python,任何学习都会遇到这么几个难点

  1. **迷茫,**对于学习过程中,对新的、未知的概念欠缺了解;
  2. **彷徨,**没有目的性的学习,不知道学完之后可以怎么用;
  3. **乏力,**知道很重要,缺乏完整的知识体系,怎么都感觉没有学好;
  4. **无知,**学习后觉得自己可以了,用到实际的时候依然不知所以然;

首先,不能不说的一点,学习python,一开始不要想着和数据分析有什么关系,而是了解完python可以做什么,再去想想哪些过程能应用到这些功能,解决什么问题;更不要想着和数学有什么关系,撇开其他不谈,python也是一门程序语言,和C、C++、VBA、R语言并没有什么区别,用类别的方式进行学习,事半功倍!

以下是一些可以去做检索的关键词,利用好百度、Google、知乎、CSDN、Stackoverflow、github,可以很好的进行自我学习;

11~13年的时候python学习的社区还不成熟,躺了无数多个坑。发展到现在,有特别多的在线课程可以跟着学习,站在前人的基础上进行翱翔。可以跟着循循渐进的进行学习,在理论知识、工具介绍、模块拆解、语法讲解上都有特别细的说明,也可以根据自己的目标去选择性学习(提高办公效率、高逼格分析可视化、算法实践),把知识嵌入到实际项目中去!

二、塑造清晰的认知(解决迷茫)

对于python学习来说,没有具体场景、数据的支撑,看了书、看了视频、看了课程,学完之后依然觉得很难应用,绝大多数情况下是因为只看了浅层的知识介绍,忽略了原有知识体系和本我工作的锲合度。

2.1 了解和认识Python的应用范围

应用1:利用python进行数据分析;

场景:替换原来在Excel中的函数统计、绘图的过程,对分析过程中的数据进行聚合处理,直接利用python相应的库进行分析结果呈现,实现多因素的可视化呈现,增加数据的可读性;

应用2:python爬虫;

场景:这应该是绝大多数初学者最容易上手的切入点,也应该是最感兴趣的一个点,通过爬虫去做数据采集,模拟业务场景去进行数据探索分析,必不可少的要去了解HTML的构成、元素、框架和规则; 然后就是爬图片、爬视频、爬评论,git上最经典的一个案例就是豆瓣、 但是爬虫有风险,一定要关注法律,不要因小失大!!! 参考链接:github地

应用3:机器学习和深度学习;

场景:在信息化程度比较高的企业,往往会有大数据算法分析应用的场景,利用sklearn提供的算法能力,可以快速建立模型,实现预测、分类、聚类、回归等目的;

应用4:Web应用开发;

当了解到python可以搭建网站的时候,跟着刘江老师的博客,手把手复刻了一个项目,利用django做了一个可视化系统,出来的效果如下图;同样的,还有flask的案例;

应用5:自动化测试和运维;

自动化的运维,省时省力省心,凡是能够自动化的过程,都可以在过程中有效的进行优化(偷懒) 关于nginx的开源网站介绍,一些开源项目可以直接拿来部署应用的项目情况,gitee

应用6:......

2.2 了解和认知Python的运行平台

工具1:IDLE;

IDLE 是python自带的一个编辑器,相当简洁,简洁到简陋的地步;当安装好python之后,就伴生存在了,不需要再做额外的动作,基本功能有语法加亮、段落缩进、基本文本编辑、TABLE键控制、调试程序。

工具2:CMD and 终端命令行;

学习python过程中的一大阻力!!!尤其是对计算机系统并不是那么熟悉的同学,但是不得不去克服这种困难,在后续的学习过程中可能需要通过终端的命令来进行库的安装、查看,尤其是要做定时运行的时候。 windows下:win+R,输入CMD;mac下:直接打开终端;

工具3:Pycharm;

一开始有点难用,都是纯E的菜单、信息,但是它的诸多功能都特别实用,语法高亮、提示、补全、运行预览,而且安装包比较方便,属于熟悉之后就离不开的那种;

工具4:Anaconda;

naconda是最省心的一个平台工具,一站式解决了python安装、库安装的问题,直接集成了多个GUI的应用,并且提供了比较好的节目进行脚本开发;

工具5:Jupyterlab / Jupyter Notebook;

实现网页版的交互式脚本撰写,支持Markdown格式,在做数据探索的时候,顺便生成一份分析报告;

工具6:iPython;

python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数。 在cmd命令行窗口直接输入ipython,得到如下界面:

工具7:Spyder; 适合科学计算,界面和 Rstudio类似,可以逐行调试;

2.3 了解和认知Python的基础知识

python基础知识就不展开了,在很多基础知识的网站上都会有介绍,在学习之初,最重要的几个概念理解清楚,然后不断的去发散。 知识1:pip; 知识2:import库操作; 知识3:文件读写; 知识4:pyhon的常用库及解决什么问题; 知识5:python2.x和python3.x的区别

三、建立明确的目标(消除彷徨)

在不同应用范围下,对相关的库所需要了解和掌握的程度差异略大,本质上是工作类别的差异性。 以数据分析岗为例,对于python的学习,可以集中在以下一些库上:

3.1 文件类

os------学习Python最优先看的应该就是os包,对文件夹、文件进行操作:

3.2 数据计算类

Pandas------像用Excel一样对数据进行统计分析; Numpy------拥有大量的计算函数,可以进行矩阵计算; Scipy------用于数学、科学、工程领域的常用软件包;

3.3 Python绘图类

Matplotlib------绘图必备,可以和seaborn结合一起,绘制出和ggplot风格的图; Pyecharts------百度可视化的开源库,可以做出丰富的JS图表;

3.4 交互类

Openpyxl------Python和Excel的交互包,可以对Excel进行操作; Pymysql------Python和mysql的交互包,直接连到数据库获取数据源;

3.5 文本处理类

re------必须要学会的正则表达式,对于文本处理有非常好的用途; json------非结构式的key:value数据处理;

四、构建完整的体系(丢掉乏力)

为什么要去构建知识体系?让知识有层次、有结构、有深浅。参考一本书的目录,从浅入深的做好知识沉淀; 脱离于认知期和熟悉期之后,对于python能够实现的功能有了大概的了解,能够定向的去解决一些问题,用来用去也就那么几个方法。这时候,就需要对所用的包有一个具体的了解,而且一定要围绕自己学习的重点来展开,

4.1 官网的知识地图(以pandas为例)

参考一下官网的知识结构梳理: 语法 - 数据整理 - 数据重塑 - 行列操作 - 数据统计用法 - 缺失值处理 - 数据集合并 - 数据分组 - 绘图呈现

可以按照这个思路对所用的库进行拆解,能够有更清晰的认知,针对某一场景的时候,可以用多个不同的方法进行解决,以及如何高效的进行解决!

4.2 用Xmind构建知识树(adaboost)

参考一本书的目录,从浅入深的做好知识沉淀; 譬如:

知识体系的构建,不是一朝一夕的事情,需要依赖长时间的经验沉淀,根据自己对知识的掌握,绘制一些知识树,把python可解决的一些能力具象出来。

五、完善场景的练习(不要无知)

刻意练习,不能闭门造车!!! 从实际的业务场景中进行需求提炼,把场景和python学习结合在一起,基于需求的学习可以事半功倍。 我用python主要是还是用在数据分析上,从数据采集、清洗、处理、建模、结果、可视化、汇报的流程链路上,用不同的库分别解决各自的问题,实现效率的提升。在这个过程里面,需要结合大量的数理知识、算法知识、设计理念来把事情串起来。可以把数据场景和Python的库进行一一对应,也可以进行对比学习,把所有Excel处理的场景通过Python进行复现,然后逐步的去Excel化! 1.基础 -> 2.统计 -> 3.编程 -> 4.机器学习 -> 5.NLP -> 6.可视化 -> 7.大数据 -> 8.资料撷取 -> 9.数据清洗 -> 10.工具箱

python是工具,工具即利器,磨刀不误砍柴工,把工具研究透彻,就能在实际的项目上大刀阔斧,而不是临阵磨枪,乱了阵脚。 碰到问题解决问题,建立自己的一套问题词库,在碰到困难的饿时候,可以优先通过平台搜索解决很大一部分问题,问题解决的优先级: 搜索引擎 > 厉害的知识博主 > 周边的大牛 > 较早学习的前辈 > 视频课程 > 书籍

六、写在最后

在学习的路上,就是一个塑造自我认知的过程,一定要清晰,且明朗,知之为知之,把每一个概念理解清楚,扩散的知识点了解清楚,在碰到问题的时候就会游刃有余,而不是不知所措。

相关推荐
Elihuss2 小时前
ONVIF协议操作摄像头方法
开发语言·php
Swift社区5 小时前
在 Swift 中实现字符串分割问题:以字典中的单词构造句子
开发语言·ios·swift
没头脑的ht5 小时前
Swift内存访问冲突
开发语言·ios·swift
没头脑的ht5 小时前
Swift闭包的本质
开发语言·ios·swift
wjs20245 小时前
Swift 数组
开发语言
stm 学习ing6 小时前
FPGA 第十讲 避免latch的产生
c语言·开发语言·单片机·嵌入式硬件·fpga开发·fpga
湫ccc7 小时前
《Python基础》之字符串格式化输出
开发语言·python
mqiqe8 小时前
Python MySQL通过Binlog 获取变更记录 恢复数据
开发语言·python·mysql
AttackingLin8 小时前
2024强网杯--babyheap house of apple2解法
linux·开发语言·python