数据分析——从入门到精通(一)

Date_Analysis

1.环境安装

1.安装Anaconda,进入官网https://www.anaconda.com/

Anaconda集成了当前系统下,大多数Python的模块库,包含了1500+/R的用于科学技术的数据包,是一个环境集。conda工具,便于管理依赖库及创建虚拟环境

anaconda2常用于python2 anaconda3常用于python3.7及以上

请添加图片描述

按住window +R,输入:cmd,点击回车。试着运行下面代码:
请添加图片描述

接着执行:

请添加图片描述

2.jupyter notebook基本操作

进入到需要的文件夹里,启动jupyter notebook命令:

jupyter notebook

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hiP9ghmv-1649222173935)(Typora_image/004.png)]

新建笔记

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6otbw1eo-1649222173936)(Typora_image/005.png)]

什么是IPython

在线文档+Python环境,演示如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cJDDjOuw-1649222173938)(Typora_image/006.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2oIETH1e-1649222173939)(Typora_image/007.png)]

命令行模式下快捷键大全:

F: 查找并且替换
Ctrl-Shift-F: 打开命令配置
Ctrl-Shift-P: 打开命令配置
Enter: 进入编辑模式
P: 打开命令配置
Shift-Enter: 运行代码块, 选择下面的代码块
Ctrl-Enter: 运行选中的代码块
Alt-Enter: 运行代码块并且插入下面
Y: 把代码块变成代码
M: 把代码块变成标签
R: 清除代码块格式
1: 把代码块变成heading 1
2: 把代码块变成heading 2
3: 把代码块变成heading 3
4: 把代码块变成heading 4
5: 把代码块变成heading 5
6: 把代码块变成heading 6
K: 选择上面的代码块
上: 选择上面的代码块
下: 选择下面的代码块
J: 选择下面的代码块
Shift-K: 扩展上面选择的代码块
Shift-上: 扩展上面选择的代码块
Shift-下: 扩展下面选择的代码块
Shift-J: 扩展下面选择的代码块
A: 在上面插入代码块
B: 在下面插入代码块
X: 剪切选择的代码块
C: 复制选择的代码块
Shift-V: 粘贴到上面
V: 粘贴到下面
Z: 撤销删除
D,D: 删除选中单元格
Shift-M: 合并选中单元格, 如果只有一个单元格被选中
Ctrl-S: 保存并检查
S: 保存并检查
L: 切换行号
O: 选择单元格的输出
Shift-O: 切换选定单元的输出滚动
H: 显示快捷键
I,I: 中断服务
0,0: 重启服务(带窗口)
Esc: 关闭页面
Q: 关闭页面
Shift-L: 在所有单元格中切换行号,并保持设置
Shift-空格: 向上滚动
空格: 向下滚动

编辑模式下

编辑模式(按 Enter 生效)
Tab: 代码完成或缩进
Shift-Tab: 工具提示
Ctrl-]: 缩进
Ctrl-[: 取消缩进
Ctrl-A: 全选
Ctrl-Z: 撤销
Ctrl-/: 评论
Ctrl-D: 删除整行
Ctrl-U: 撤销选择
Insert: 切换 重写标志
Ctrl-Home: 跳到单元格起始处
Ctrl-上: 跳到单元格起始处
Ctrl-End: 跳到单元格最后
Ctrl-下: 跳到单元格最后
Ctrl-左: 跳到单词左边
Ctrl-右: 跳到单词右边
Ctrl-删除: 删除前面的单词
Ctrl-Delete: 删除后面的单词
Ctrl-Y: 重做
Alt-U: 重新选择
Ctrl-M: 进入命令行模式
Ctrl-Shift-F: 打开命令配置
Ctrl-Shift-P: 打开命令配置
Esc: 进入命令行模式
Shift-Enter: 运行代码块, 选择下面的代码块
Ctrl-Enter: 运行选中的代码块
Alt-Enter: 运行代码块并且插入下面
Ctrl-Shift-Minus: 在鼠标处分割代码块
Ctrl-S: 保存并检查
下: 光标下移
上: 光标上移

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SUka7lez-1649222173943)(Typora_image/008.png)]

按ESC,就会从编辑模式切换到命令行模式

### 命令行模式的快捷键
--ctrl + enter  运行
--alt+ enter  在下面插入新行
--l   打开或关闭行号
--b   当前cell下方新插入一个cell
--a   当前cell上方新插入一个cell
--m   当前cell单元转化为markdown标签文档
--y   当前文档标记的单元cell 转化为code代码单元
--dd  删除当前的Cell单元

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ol46H9iB-1649222173944)(Typora_image/009.png)]

按Enter,就会从命令行模式切换到编辑模式

### 编辑模式的快捷键
- tab 键  缩进
-ctrl + [  向左缩进(取消缩进)
-ctrl + ]  向右缩进
-shift + tab  提示     (在PyCharm里面提示python代码函数的参数用 ctrl+p)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0xYbhbQg-1649222173947)(Typora_image/010.png)]

演示案例:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5rtTrVOs-1649222173948)(Typora_image/011.png)]

3.numpy

新建文件day_one_numpy

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JOlSSkHf-1649222173951)(Typora_image/012.png)]

什么是numpy,关于用Python去做数学的操作

Numpy系统是Python的一种开源的数值计算扩展
优势:一个强大的N维数组对象Array
比较成熟的(广播)函数库
用于整合C/C++和Fortran代码的工具包------>numba计算加速
实用的最优化、积分、插值、线性代数、傅里叶变换和随机数生成函数
numpy和稀疏矩阵运算包scipy配合使用更加强大

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KWzNu3zF-1649222173952)(Typora_image/013.png)]

### 数组转化的数据类型优先级
int<float<str
如果都是整型,转化完都是整型
如果有一个是小数类型,转化完都是小数类型
如果列表中既有整数,又有小数,还有字符串类型,则最终转化的结果为字符串类型

创建数组的方式,除了使用np.array(),还可以使用np的函数创建

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-akNBoX5y-1649222173955)(Typora_image/014.png)]

演示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5B0AWaoK-1649222173957)(Typora_image/015.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nocvbeDX-1649222173959)(Typora_image/016.png)]

总结:

### 创建新数组的方式
### 创建新数组的方式
- np.ones(shape,dtype,order)      
- np.full(shape,fill_value,dtype)   # 填充其他数
- np.eye(N,M=None,k=0,dtype=None)   # 对角线
- np.linspace(start,end,num=50,endpoint=True,dtype=None)
- np.arange(([start,] stop[, step,], dtype=None))
- np.random.random(size=None)
- np.random.randint(low,high,size=None)
- np.random.randn(d0,d1,...dn)
- np.random.seed(seed=10)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aMHoX7qQ-1649222173960)(Typora_image/017.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ro6Hvmqu-1649222173963)(Typora_image/018.png)]

演示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Izmxig9x-1649222173964)(Typora_image/019.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-exgYEpNj-1649222173967)(Typora_image/020.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PXEfQ0Ou-1649222173969)(Typora_image/021.png)]

4.数组的属性

### 数组的属性
- dtype 数组 (内元素)的类型
- size  数组的长度(元素的个数)
- shape 数组的形状,是tuple
- ndim 数组的维度

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EuSMXl7O-1649222173970)(Typora_image/022.png)]

### ndarray的索引
- 索引从0开始 [index] 或 [行索引]
- 多维数组的索引操作,[行索引,列索引], 在多维数组中,索引是从外轴开始的。外轴可以理解为从外到内。
- 连续的索引操作,即切片操作 [行起始索引:行结束索引:步长, 列起始;列结束:步长]
   - 默认的起始索引为0,结束索引为最后一个(包含最后一个)(长度),步长为1
   - [:3] 查看前三行,这种写法不包含结束位置  同Python中的list相同
   - [1:] 查看从第二个开始,到最后,包含结束位置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UGYGJCyS-1649222173972)(Typora_image/023.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0huKxY3e-1649222173973)(Typora_image/024.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LXqdgid7-1649222173975)(Typora_image/025.png)]

演示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Grxfd5ai-1649222173977)(Typora_image/026.png)]

### 变形操作
- reshape(shape=)注意 变形前后的shape不变

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iHs7t8gz-1649222173978)(Typora_image/027.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tgypwn6V-1649222173979)(Typora_image/028.png)]

### 转置操作
- 将行和列倒转,即行和列互换,原行转变为列,原列转变为行
- .T
- .transpose()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CsH8rJjx-1649222173982)(Typora_image/029.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZSLe15B4-1649222173982)(Typora_image/030.png)]

### 数组级联操作
- np.concatenate(objs,axis=0)
- np.hstack()  水平级联
- np.vstack()  垂直级联

演示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UIOQ5trC-1649222173984)(Typora_image/031.png)]

演示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pEUtiJjx-1649222173985)(Typora_image/032.png)]

演示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YRfAJ1FX-1649222173987)(Typora_image/033.png)]

### 切分
- np.split(arr,indeces,axis=0)
- np.hsplit()
- np.vsplit()

演示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H9hSX3V8-1649222173988)(Typora_image/034.png)]

演示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DG2WQ6m6-1649222173990)(Typora_image/035.png)]

演示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cJh7cwOu-1649222173992)(Typora_image/036.png)]

### 副本
- .copy()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GJIbXzCO-1649222173992)(Typora_image/037.png)]

演示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FrB0c4i1-1649222173993)(Typora_image/038.png)]

### 聚合操作
- sum()
- mean()
- max()
- min()
- std()   # 标准差

演示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xvBJDf2y-1649222173994)(Typora_image/039.png)]

演示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M9TcTh1Y-1649222173995)(Typora_image/040.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d3Ybz2PG-1649222173996)(Typora_image/041.png)]

### 数值的算术运算
- 加(+)、减(-)、乘(*)、除(/)、取整(//),取余(%)
### 矩阵运算
- .dot()

演示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WdxgmI2b-1649222173997)(Typora_image/042.png)]

演示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pA5sNy3F-1649222173999)(Typora_image/043.png)]

当一个数值和一个常数相加时,就引出了ndarray 广播机制

### ndarray 广播机制的两条规则
- 规则一:为缺失的维度补1
- 规则二:假定缺失元素,用已有值填充

演示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6uwN0K1z-1649222174000)(Typora_image/045.png)]

演示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r1TT6JZW-1649222174001)(Typora_image/046.png)]

演示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fgLdKOtG-1649222174003)(Typora_image/047.png)]

演示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7qEIxyZ3-1649222174004)(Typora_image/048.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nw5kCqdo-1649222174005)(Typora_image/049.png)]

### 矩阵运算
- 左矩阵的列数要和右矩阵的行数必须保持一致

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6zvH30uu-1649222174006)(Typora_image/050.png)]

注意:

第一行第一个数18是 1*2+2*5+3*2          a的第一行×b的第一列
第一行第二个数32 是 1*4+2*2+3*8         a的第一行×b的第二列
第一行第三个数31 是1*8+2*7+3*3          a的第一行×b的第三列
...
第二行的第一个数27是 1*2+3*5+5*2       a的第二行×b的第一列
第二行的第二个数50是 1*4 +3*2+5*8      a的第二行×b的第二列
...
第三行的第一个数36是 2*2+4*5+6*2       a的第三行×b的第一列
第三行的第二个数64是 2*4+4*2+6*8       a的第三行×b的第二列
...
第四行的第一个数54是3*2+6*5+9*2       a的第四行×b的第一列
第五行的第二个数96是3*4+6*2+9*8       a的第四行×b的第二列
第一行第一个数18是 1*2+2*5+3*2          a的第一行×b的第一列
第一行第二个数32 是 1*4+2*2+3*8         a的第一行×b的第二列
第一行第三个数31 是1*8+2*7+3*3          a的第一行×b的第三列
...
第二行的第一个数27是 1*2+3*5+5*2       a的第二行×b的第一列
第二行的第二个数50是 1*4 +3*2+5*8      a的第二行×b的第二列
...
第三行的第一个数36是 2*2+4*5+6*2       a的第三行×b的第一列
第三行的第二个数64是 2*4+4*2+6*8       a的第三行×b的第二列
...
第四行的第一个数54是3*2+6*5+9*2       a的第四行×b的第一列
第五行的第二个数96是3*4+6*2+9*8       a的第四行×b的第二列
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今晚务必早点睡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值