数据分析基础

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() 

 

以上是关于数据分析基础的主要内容,如果未能解决你的问题,请参考以下文章

片段是否执行基础数据的复制?

201555332盛照宗—网络对抗实验1—逆向与bof基础

VsCode 代码片段-提升研发效率

20155201 李卓雯 《网络对抗技术》实验一 逆向及Bof基础

JSP基础

Java基础:封装