现未编写完全可免费观看已经写了的地方进行学习
此教程适合从来没有接触过大数据,甚至是从来没有接触过编程的小白,对大数据了解学习,基础速成,从Python数据处理开始因为大数据正式内容是分布式计算,MapReduce和spark之类整体的数据处理来讲和这个处理操作逻辑上几乎一样,直接学习Hadoop的MapReduce和spark对于小白来讲比较难懂,所以从Python数据分析处理入手先了解对数据分析与处理的操作逻辑
如果还有看不懂可以评论区里提问,对教学的任何知识点提问都在写在评论区,24小时内回答
每天晚更新教学,关注作者收藏文章都可跟踪后续教程,想要转载的可以转载我本教学的 环境配置教学,转载文章下方必须要有我文章链接,谢谢
本教学是基于 Python 3.x 版本的教学
环境配置
python做数据分析处理与可视化推荐 jupyter notebook 编辑,如后续要学习做爬虫项目框架等编程操作则推荐PyCharm,为你们后续发展考虑本文章会从 两种编辑器进行教学,还会教学一个万能(几乎所有系统都可以这么操作)编辑安装
PyCharm 安装部署
官网:Uninstall Feedback - PyCharm (jetbrains.com)
下滑到community是免费社区版,学习推荐这个版本
Windows判断自己电脑处理器是否为ARM架构方法,在cmd中输入 systeminfo
如果是ARM则 有ARM字的显示
如果不是ARM则 没有ARM字的显示
下载完后点击下载的exe文件,然后下一步
点击浏览选择自己准备好的文件夹,非常不推荐放系统盘,时间长了影响电脑性能
设置好后点击下一步
全选,然后下一步
自定义程序快捷方式名,然后下一步
等待安装
选否,然后下一步
点击生成的快捷键,如果有以下窗口选Do not import settings 然后 点击 ok
如果有其他的IDEA可能会以下窗口,
成功进去后界面如下
个性皮肤设置
下载中文插件,点击plugns后在右边放大镜位置输入Chinese,然后选中图标是汉的包点击 install 下载并安装
等待下载安装完成后,还需点击 Restart IDE 重启 PyCharm 使其生效
重启进来后中文就设置成功了
选中创建欢迎脚本可以进去后直接测试项目是否创建成功,然后在位置旁边点击浏览到你要指定的项目存放位置,默认是系统盘位置,非常建议改到其他盘里面,解释器类型可以选项目venv类型然后选中你要python编译器版本,点击创建后他会自己安装并搭建好python编译器
然后等待编译器安装完毕
点击终端开始安装后续编程需要的依赖项
输入 pip install pandas,等待安装完毕
输入 pip install matplotlib,等待安装完毕
输入 pip install numpy,等待安装完毕
选中刚刚的程序文件,在代码区点击,然后使用 ctrl +a 全选
然后按 Backspace 键删除所有代码
然后输入:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt然后看有没有报红,且根据语句提示来看 模块是否导入成功
到此 PyCharm目前需要的所有安装配置都部署完毕
Jupyter notebook 安装部署
官网:Download Anaconda Distribution | Anaconda
镜像:Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
点击弹窗的 Skip registration 键
点击下面Windows的下载图标,上面那个Windows绿色键也可以点,也是一样的
下载完成后点击程序打开,点击弹窗的next
然后点击 i Agree
然后继续点击 next
指定准备好的文件夹 (准备的文件必须是空文件夹,且路径中不能出现中文,否则会报错),然后点击 next
全选然后,点击 install 安装
等待安装好后继续点击 next ,一个小时以内的安装时间一般都是正常
点击 next
继续 next
然后点击 finish,然后它会启动软件,等待软件打开成功,刚安装第一次打开等待时间较长
这个窗口点击 No,don't to show again
然后点击 ok
下滑找到 jupyter notebook,点击 install,等待安装完毕
安装完成后 install 会变成 lauch
然后先别急着启动,点击 Windows 的菜单搜索栏,输入 anaconda prompt ( 这是 anaconda 的命令行工具和 window 的 cmd 一个性质 )搜索到该程序文件并打开
在命令行使用 jupyter notebook 指令启动 web页面编辑器
之后看到的页面是这样的
上面显示的目录是此目录,Desktop 这些是 桌面等目录的英文名,且这个界面初始默认的目录路径是取的 C:\Users\Administrator 这个用户目录,因为在 C 盘上面 代码库存放位置也在 C 盘,那么很明显默认目录不修改的话,时间长了会影响的电脑的运行,所以下面开始修改默认目录操作
在命令行界面输入 jupyter notebook --generate-config 指令,回车键执行,此指令是让 jupyter notebook 生成配置文件的命令,执行后会生成一个配置文件然后会返回配置文件的路径,我这个是二次设定所以有 y/N 选择,第一次设定时没有此选择项
根据返回的路径找到该配置文件,使用 ctrl + F 弹出搜索拦,输入 notebook_dir 点击查找下一个会跳到该行
到准备好的目录位置点击上方路径框 使用 ctrl + C 复制
删掉此行的 # 在 ‘’ 中输入你准备好的目录路径,在单引号 '' 中粘贴你准备好的目录路径,这里的 \\a 是因为 \a 会被识别为 \x07 字符,所以要多加个 \ 做转义符
一般的都没人记得哪些 打法 会被误识别,所以初始设置时 目录路径可以 就使用原复制好的
比如 : F:\anaconda\jupyter notebook ku
然后点上方的 X 会弹出窗口选择保存
然后再到 Anaconda prompt 输入 jupyter notebook 执行会报以下错误
这里和原输入路径 F:\anaconda\jupyter notebook ku 对比,明显 \a 被误识别为了 \x07 (确定好被误识别的是哪个字母后第二次设置时就在那个或者几个字母前 加 \ 做转义),这个时候就重新使用 jupyter notebook --generate-config 重新刷配置文件覆盖原文件
然后打开该文件进行编辑,重复之前的操作到此行修改路径,在误识别的地方加上 \ 做转义,然后重复之前的操作进行保存
然后到 anaconda prompt 输入 jupyter notebook 执行就可以看到此界面,因为我准备的目录里面是空的,所以打开的网页就和我的那个目录一样是空的
默认目录设置好后可以教你如何使用了这个web界面的编辑器了,点击 new 然后 点击 Python 3 创建 py 文件 进行编辑
Jupyter notebook 基础使用教学
Jupyter notebook 基础介绍和快捷键操作教学
1 是 代码文件名 点击一下就可以修改,2 是代码区写代码的,3是显示当前代码区是第几次运行
Jupyter 的特色就是这个,打印变量值时可以用print也可以在末尾调用一遍这个变量,不用print的调用变量打印只限在末尾调用时会生效(比如下面第二张图),一个代码文件的界面分多个单元格,各个单元格可以单独执行就像在一个界面同时编辑多个py文件一样,但是这些单元格公用同一个变量存储区,其他区也给此变量赋值后,该变量的原值就会被覆
Jupyter 中还有一个特色这个单元格编辑是多元化状态,这个区域选择代码可编辑 python 程序,Markdown 是将单元格转换为 Mardown 编辑,Mardown 是一个轻量的文本标签编辑器,常用于给其他 Python单元格的程序进行标签介绍,让界面结构化更完整看起来更舒适,完美补上了单界面多单元格程序带来的杂乱感,报错时找错更加容易,标题选项是Markdown的分支,会把当前单元格程序化为二级标题,但是不能改成其他Markdown标签,Jupyter 这些基础操作教完后会对Markdown编辑进行教学 (Jupyter 主要就 Markdown 和 Python 编辑,其他选项都是工具点击使用的)
在这个web编辑器界面终端的下载指令直接在单元格执行,不同的是pip前要加 ! 才会识别 pip 是指令
在编辑模式中 点击 Esc 可进入命令模式
在命令模式按 Enter 可进入编辑模式
在命令模式下按 ↑ 或 K 可选中上方单元格
在命令模式下按 ↓ 或 J 可选中下方单元格
按 Shift + Enter 运行当前单元格,并选中下一个单元格
在任意模式中按 Ctrl + Enter 可运行当前单元格
在任意模式中按 Alt + Enter 可运行当前单元格,并在下面插入一个新单元格
在编辑模式中 按 Ctrl + Home 可跳转到单元格开头 (看这个图时注意光标位置)
在编辑模式中 按 Ctrl + End 可跳转到单元格结尾 (看这个图时注意光标位置)
在编辑模式中光标放函数或变量中再按 Shift + Tab 可显示函数或变量的提示信息,再点一下 ^ 可看全部信息
在编辑模式中按 Ctrl + Shift + '-' 分割单元格,会从光标位置开始分割
在编辑模式中按 Ctrl + D 删除当前行(会删除当前光标所在行)
在编辑模式中按 Ctrl + Z 撤销上一步操作(可以一直撤销到初始的样子,就是文件刚打开的样子,如果该代码在某一步退出保存再重新打开后初始的模型会被刷新覆盖)
在命令模式中按 Y 可以将当前单元格转换为代码单元格(下面示例图的单元格是 Markdown 单元格,命令模式选中后按 Y)
在命令模式中按 M 将单元格内容转换为Markdown形式
在命令模式中按 H 显示快捷键帮助
在程序执行时可以在命令模式中按 I + I (这是字母AI的I,连按两次)中断Notebook内核(无需选中某单元格因为中断内核会断该文件所有执行中的程序),即可中断程序的运行
在程序执行时可以在命令模式中按 0 + 0 可重启Notebook内核(连续按两次零),重启内核被断掉的程序不会报错且被断掉的单元格的序列号为空,单元格前的序列号也会更新重新从1开始 (这里会讲一下这个重启内核的执行原理,如果看着烧脑不舒服可以不看后面经验上来了就能懂,这里这个原理重启是记忆刷新,然后重启内核这一刻的文件状态会被做为重启之后的初始数据,但是底层缓存为空,也是说这个时候直接在一个空单元格中调用之前的变量会报错没有此变量,这个时候Ctrl + Z 返回上一步暂时无用,因为初始数据刷新了当前就是初始数据)
在命令模式中选择你要显示行号的单元格然后按 L 可显示/隐藏行号
在命令模式中 按 Shift + ↑ / ↓ 可扩大选中上/下方单元格
在命令模式中按 A 可在上方插入新单元格
在命令模式中按 B 可在下方插入新单元格
在命令模式中按 X 可剪切选中的单元格
在命令模式中按 V 可粘贴到选中单元格的下方单元格
在命令模式中按 C 复制选中的单元格
在命令模式中按 Shift + V 粘贴到选中单元格的上方单元格
在命令模式中按 D + D 可删除选中的单元格
Shift + M:合并选中的单元格
Markdown 标签编辑教学
( 标签类型语言的主要结构就是 标签 加 内容,单标签的内容跟在标签后面,有上标签加下标签的这种标签组的内容插在标签组的中间,所有都是这种就两结构,看起来复杂的其实结构也无非就是这两种结构的各种嵌套,把一个 a 结构或编程中的方法的应用 当做内容放 b 结构中 这种操作就是嵌套,a中可以嵌套b,b中还可以嵌套 c、d、e、f,这种还可以说a中嵌 b、c、d、e、f )
Markdown 语法
(这个Markdown自己内置的这个语法的符号喊做标签也是没毛病的,都是一个作用)
Markdown是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。以下是一些常用的Markdown标签及其功能
一、标题语法( Markdown 语法符 和内容之间需用空格分隔)
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
二、斜体语法( Markdown 除了标题以外的与 语法符 和内容 之间没有空格分隔 )
*斜体文本* 或 _斜体文本_
**粗体文本** 或 __粗体文本__
***加粗斜体文本*** 或 ___加粗斜体文本___
三、水平分隔线
在标准的Markdown语法中,分割线通常使用三个以上的连字符(
---)或星号(***)来创建,但是它们的颜色通常是浏览器或渲染器默认的样式,Markdown本身不支持直接定义分割线的颜色或样式,如果觉得这个分割线颜色太浅了可以使用HTML的
--- 或 *** 或 ___
四、~~删除线~~
五、使用三个或更多的反引号 `` 包围代码块,可以指定语言以获得语法高亮。
六、引用链接
链接引用 [](),执行后会展示替代的文本,点击文本即可跳转
七、表格语法
使用 | 和 - 做Markdown表格
每两个管道符 || 中视为格,|1| 为 一个 格 ,|1|2| 为两个格,第一个 - 才会被识别为表格 表头和内容的分割标识,每行的格的数量一样 且 表头下有一行 |-| 分割标识符 ,一旦分割标识后,分割标识符下面 || 中任意字符都是内容
Markdown 使用的 HTML标签
Markdown的 HTMl 标签使用比原完整的 HTMl 更简单 绝大部分没有了 繁琐的各个标签中间的必要结构要求 (但是比如表格这个标签,整体要表现一个完整的表格那么最基础的<thead>、<tbody>这类指定表头表内容的基础标签还是要有的,再简化的话至少<tr>这个指定哪几个数据为一行的这种基础标签还是要有的) ,不需要必须写<html><body>等标签,任何标签都可以单独提出来独立使用,也可以像完整HTML一样的编写 ,HTML所有的标签都是< 头标签 > 内容 < 尾标签( /头标签字符 ) > ,内容可能是另一个标签应用,也可能是一个文本字符
一、标题标签
<h1>这是一个标签</h1>
<h2>这是一个标签</h1>
<h3>这是一个标签</h3>
二、正文标签
<p>这是一个段落</p>
<p>这也是
一个
段落</p>
<u>带下划线文本</u>
二、正文标签
<p>这是一个段落</p>
<p>这也是
一个
段落</p>
<u>带下划线文本</u>
三、style 样式属性(strle是css用于定义文本字符串的视觉表现)
font 样式属性参数:
1.font-family:设置文本的字体族
2.color:设置文本的颜色
3.font-size:设置文本的大小
4.font-weight:设置文本的粗细
5.font-style:设置文本的风格,如斜体
1.background-color:设置文本的背景颜色 (padding是文本背景的内部空间距离大小设置)
2.text-align:设置文本的水平对齐方式
3.margin:设置元素周围的空白区域(外边距)
4.padding:设置元素内部的空白区域(内边距)
5.border:设置元素的边框样式、宽度和颜色。
目前此扩展部分暂时到此,更多Mardown的HTML内容可在MDN提供的MDN Web Docs中查看:font-family - CSS: Cascading Style Sheets | MDN (mozilla.org)
python 基于数据处理与分析基础教学
计算机程序基本的执行模式(扩展,看不懂可以跳过)
计算机基础层面程序工作可以归纳为两种基本工作,一个存储,另一个就是判断,比如说一个python程序代码: a=2
print(a+1)
程序运行时:
Python解释器首先会为程序分配内存空间。在程序运行期间,操作系统会为Python解释器提供一块内存空间来存储所有的数据和变量,
在这段代码中,会有两个主要的内存分配:
1.堆(Heap):存储程序运行时的数据对象,比如整数 2
2.栈(Stack):存储变量名及其对应的引用(指向堆中对象的指针),比如变量 a
在堆中创建一个整数对象 2,在栈中创建一个变量 a,并将其指向堆中整数对象 2 的地址,读取栈中变量 a 的引用,这个引用指向堆中的整数对象 2,创建一个新的整数对象 1 并存储在堆中,执行整数加法操作,即将整数对象 2 和整数对象 1 相加,得到新的整数对象 3,计算表达式 a + 1,得到整数对象 3,将整数对象 3 转换为字符串形式(如果需要),将 3 送到控制台(能让外面的人看见信息是控制台的功能,会把传过来的东西显示到屏幕上)
解读翻译:
程序的底层就像一个只会认字很笨管理员,内存区就好像一栋宿舍楼,程序执行时,开学了,学校来了一个a同学, 管理员把a同学带到宿舍楼,根据a同学给信息表给a同学分配了一个寝室并把信息表贴在寝室门上,a现在状态是2,管理员回去后上级给管理员派发了一个print活动文章,并明确要求是带a,且参加print活动前让a状态+1,然后管理员去宿舍楼找a,管理员一看这么多门分不清a在哪一个里面,管理员只能按照老习惯的顺序(固定顺序)开始用手上拿着a的信息表和经过的每个门上的信息表做对比,终于到a的门前了管理员看着门上的信息表能对上了就敲门含a出来,a出来后,管理员根据指示用带过来的+1药剂给a来了一针,a状态+1,管理员对照文章看a已经+1了对上要求了可以去print活动区了,然后把a带到print活动区参与print活动展示,然后大家都知道了a状态为3 ,至于管理员怎么判断哪条路可以来到宿舍楼的用的操作和到宿舍楼后找a的寝室门一样的操作
任何程序在底层硬件中就这两种工作,存储和判断(后续会为什么是这两种操作,这两种操作是怎么用硬件实现),万变不离其宗,从这个层面去理解分析,可以降低复杂的代码分析理解难度;看不懂的可以发评论区,我对此内容进行相应的优化,想跳过这个的也可以不会影响你学后面的内容
Python 语法
在python在变量的数据类型会根据变量的值自动设置对应数据类型,不需要声明
Python包括常见的数据类型:整数、浮点数、字符串、列表、元组、字典等,其他数据类型就是根据代码赋值的类对象来确定,比如 df = pd.DataFrame() 这个语句调用了DataFrame对象赋给df变量,这个df的类型就是DataFrame类型,有时候代码中调用某些函数处理后类型也会变,出现了变量类型不那么z明显不好判断时可以使用 type(),()中插入变量然后打印返回值查看变量数据类型,
代码语句结束判断和代码块区分用换行和缩进表示,换行表示这句话说完了,下级代码块的缩进格数大于上级代码块,根(全局)代码块没有缩进,条件和循环语句结尾要加冒号
Python 基础运算
----------------------------------------------------待更新----------------------------------------------------------