数据分析基础
Posted kindvampire
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据分析基础相关的知识,希望对你有一定的参考价值。
数据分析
什么是数据分析?
定义:把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律,使数据价值最大化。数据分析是使用适当的方法对手机来的大量数据进行分析,帮助人们做出判断,以便采取适当的
行动。
为什么学习数据分析?
1、他有岗位要求。
2、它是Python数据科学的基础
3、它是机器学习课程的基础。
数据分析的流程:
1、提出问题
2、准备数据
3、分析数据
4、获得结论
5、成果可视化
开发环境介绍
anaconda:一种机器学习和数据分析的集成环境。官网:https://www.anaconda.com/
安装:傻瓜式安装。(安装路径最好不要有中文)
jupyter:jupyter是anaconda提供的一个基于浏览器的可视化开发工具。(后面的代码都是在jupyter上执行的)
jupyter的基本使用:
启动:jupyter notebook
数据分析三大模块
numpy、pandas、matplotlib
numpy模块
介绍:NumPy(Numerical Python) 是 Python 语言中做科学计算的基础库。重在于数值计算,也是大部分Python科学计算库的基础,多用于在大型、多维数组上执行的数值运算。
创建数组的三种形式:
1、通过numpy中的array()创建。
import numpy as np # 创建一维数组 arry = np.array([1,2,3,4,5,6]) # 创建二维数组 arry = np.array([[1,2,3],[3,2,1]]) # 创建三维数组 arry = np.array([[[10,20,30],[10,20,300],[10,20,30]],[[10,20,30],[20,30,40],[40,50,60]]])
2、motplotlib模块中pyplot创建数组。(将图片加载进三维数组中)
# 原图像 import matplotlib.pyplot as plt # 读取图片加载到数组中 img_arr = plt.imread(‘./a.jpg‘) # 原图像展示 plt.imshow(img_arr)
例子:修改图片加载的三维数组中的数据,看图片是否会发生变化?
# 做修改后展示 import matplotlib.pyplot as plt img_arr = plt.imread(‘./a.jpg‘) # 为 img_arr三维数据的每一列加50 img_arr = img_arr + 100 # 展示数据 plt.imshow(img_arr)
很明显发生了变化。
3、使用numpy的routines函数创建
routines函数:numpy.ones()、numpy.linspace()、numpy.arange()、numpy.random.randint()
import numpy as np # 创建一个4行5列的二维数组 np.ones(shape=(4,5)) # 0~100,之间,数组数据个数为20,数据的值由该函数自行计算,返回一维数组 np.linspace(0,100,num=20) # 前面两个指的是范围,num指数组的个数 # 0~100之间,数据之间为等差的关系,返回一维数组 np.arange(0,100,step=2) # step:等差值 # 数据为0~100之间随机值的数组(每次执行,返回的数组中的数据都是随机的) np.random.randint(0,100,size=(3,4)) # 二维数组的行列数 # 固定随机性 np.random.seed(1) # seed传入一个随机的数值(类似于hashlib加密的‘盐’) np.random.randint(0,100,size=(3,4))
numpy常用属性
import numpy as np arry = np.array([[1,2,3],[3,2,1]]) # 形状(几行几列) arry.shape # 维度 arry.ndim # 返回元素个数 arry.size # 数组元素的数据类型 arry.dtype # 查看数组类型 type(arry)
修改数组元素的数据类型
import numpy as np arry = np.array([[1,2,3],[3,2,1]]) # 方式一:直接修改 arry.dtype = ‘int8‘ # 方式二:定义时指定 arry = np.array([[1,2,3],[3,2,1]],dtype=‘float64‘)
数据类型表:
数组的切片与索引
import numpy as np np.random.seed(1) arry = np.random.randint(0,100,size=(4,5)) # 切前两行 arry[0:2] # 切前两列 arry[:,0:2] # 切前两行的前两列 arry[0:2,0:2] # 逗号前面代表行的切片,逗号后面代表列的切片 # 数组数据的翻转 # 行倒置 arry[::-1] # 列倒置 arry[::,::-1] # 数据翻转 arry[::-1,::-1]
引申:
1、对图片的反转
import matplotlib.pyplot as plt # 加载图片数据 img_arr = plt.imread(‘./a.jpg‘) #三维数组的反转 img_arr = img_arr[::-1,::-1,::-1] # 行反转,列反转,颜色反转 plt.imshow(img_arr)
2、图片裁剪
import matplotlib.pyplot as plt # 加载图片数据 i_arr = plt.imread(‘./a.jpg‘) # 裁剪 plt.imshow(i_arr[100:580,100:490,:]) # 行:取100行到580行之间的内容;列:取从100列到490列之间的内容
裁剪前:
裁剪后:
数组的变形
import numpy as np arr = np.random.randint(0,100,size=(3,4)) # 将二维数组改为一维数组 ar = arr.reshape((12,)) # 行乘以列 # 将一维数组变为二维 ar.reshape((3,4)) ar.reshape((1,12)) # 注意:无论是一维数组变二维还是二维变一位数组元素总量不能变
级联操作
import numpy as np arr = np.random.randint(0,100,size=(3,4)) # 竖直拼接 np.concatenate((arr,arr),axis=0)# axis=0表示竖直拼接,axis=1表示水平方向
例:图片九宫格拼接(之前裁剪的那张图)
# 原图像 import matplotlib.pyplot as plt # 加载图片数据 i_arr = plt.imread(‘./a.jpg‘) # 裁剪脸部 plt.imshow(i_arr[100:580,100:490,:]) # 水平拼接 arr3 = np.concatenate((i_arr,i_arr,i_arr),axis=1) # 竖直拼接 arr9 = np.concatenate((arr3,arr3,arr3),axis=0) plt.imshow(arr9)
常用的数学函数
import numpy as np # 标准的三角函数:np.sin(数组)、np.cos(数组)、np.tan(数组) # 例句: arr = np.random.randint(0,100,size=(3,4)) a = np.sin(arr) #批量精确数据(将数组中的数据精确到后几位) np.around(a,decimals=1) # decimals为1,代表数据精确到小数点后1位,2时为小数点后两位,以此类推
求数组元素的标准差和方差
import numpy as np a = np.array([22,33,22,34,41,44]) # 求标准差 a.std() # 求方差 a.var()
以上是关于数据分析基础的主要内容,如果未能解决你的问题,请参考以下文章