这篇博客来速成以下python的数据处理。
主要讲讲一些回顾性的知识。博主是出于上可视化这门课程才要学习这一部分的。不知道以后能不能用的到。
涉及的内容:#
- pandas(用来处理数据的模块)
- matplotlib(一般使用内部的pyplot来绘制图形)
- os(你的操作系统给python的接口)
- numpy(用来进行科学计算
虽然这个课程我没主动地用) - 基本的python工具。
正式开始:#
我们做数据处理,一般涉及到这样的流程:数据获取(寻址)-选择感兴趣的数据-筛选其中的数据-数据再生产(计算)-展示数据体现的内涵/将数据保存输出。
下面我们就来根据这个框架来分析以上python模块为我们提供了什么样的帮助;
pandas:#
pandas是对数据做非可视化处理的一个非常强力的工具。在python中,如果你想用pandas来进行对数据的处理,只需要在你的脚本文件中导入pandas模块(前提是你的对应的python环境已经添加了pandas模块)即可,也就是
1 | import pandas as pd |
初识pandas:#
在pandas中,我们可以用很多种方式来表现我们的数据,最常见/基础的就是dataframe,这个对象可以通过如下方式来创建
1 | df_0 = pd.DataFrame() # 创建一个空的dataframe,简写为df |
如果你想知道numpy数组有什么不同,点这里
创建完数据对象之后,我们可以使用类似于python中使用字典/列表的方式,来对数据进行访问,例如
1 |
#
numpy#
在深度学习的实现中。在深度学习的实现中,经常出现数组和矩阵的计算。NumPy 的数组类(numpy.array )中提供了很多便捷的方法。
初识:#
创建numpy array 并进行简单的操作。
1 | import numpy as np |
广播功能:#
形状不同的数组之间也可以进行运算,numpy会做出相应处理:
这种自动适应的行为称之为broadcast
.
比如
1 | print(np.array([1,2,3,4])>2) |
将会得到一个np.array
,其内容是[false,false,true,true]
,这里相当于将标量2
扩展称为$(1*4)$的矩阵,然后进行element-wise的比较
访求数据:#
np.array
为我们筛选数据提供了很方便的api
,一方面,我们可以在索引器中写一个index数组
,里面放置我们想要访问的数据的index
,就像这样:
1 | X=np.array([1,2,3,4]) |
或者是使用一个和原数组等长的布尔数组
,来决定每一个数据是否被访求。就像这样
1 | X=np.array([1,2,3,4]) |
matplotlib:#
Matplotlib 是用于绘制图形的库,使用 Matplotlib 可以轻松地绘制图形和
实现数据的可视化。
一般都使用matplotlib.pyplot
初识:#
1 | import numpy as np |
再画一点:#
可以添加很多其他的功能,比如标签名称/图形标题之类的:
1 | import numpy as np |
plt还有很多其他的功能,比如,读取图像imread()
,显示图像imshow()