网站建设网络推广公司有哪些,哪里专业做网站,合肥企业网站,特产网站怎么做机器学习#xff08;科学计算库#xff09;完整教程#xff08;附代码资料#xff09;主要内容讲述#xff1a;机器学习#xff08;常用科学计算库的使用#xff09;基础定位、目标#xff0c;机器学习概述定位,目标,学习目标,学习目标,1 人工智能应用场景,2 人工智能小…
机器学习科学计算库完整教程附代码资料主要内容讲述机器学习常用科学计算库的使用基础定位、目标机器学习概述定位,目标,学习目标,学习目标,1 人工智能应用场景,2 人工智能小案例。机器学习概述1.5 机器学习算法分类学习目标,学习目标,1 监督学习,2 无监督学习,3 半监督学习,4 强化学习。机器学习概述1.7 Azure机器学习模型搭建实验学习目标,学习目标,Azure平台简介,学习目标,1 深度学习 —— 神经网络简介,2 深度学习各层负责内容。Matplotlib3.2 基础绘图功能 — 以折线图为例学习目标,学习目标,1 完善原始折线图 — 给图形添加辅助功能,2 在一个坐标系中绘制多个图像,3 多个坐标系显示— plt.subplots(面向对象的画图方法),4 折线图的应用场景。Matplotlib3.3 常见图形绘制学习目标,学习目标,1 常见图形种类及意义,2 散点图绘制,3 柱状图绘制,4 小结。Numpy4.2 N维数组-ndarray学习目标,学习目标,1 ndarray的属性,2 ndarray的形状,3 ndarray的类型,4 总结。Numpy4.4 ndarray运算学习目标,学习目标,问题,1 逻辑运算,2 通用判断函数,3 np.where三元运算符。Pandas5.1Pandas介绍学习目标,学习目标,1 Pandas介绍,2 为什么使用Pandas,3 小结,学习目标。Pandas5.3 基本数据操作学习目标,学习目标,1 索引操作,2 赋值操作,3 排序,4 总结。Pandas5.6 文件读取与存储学习目标,学习目标,1 CSV,2 HDF5,3 JSON,4 小结。Pandas5.8 高级处理-数据离散化学习目标,学习目标,1 为什么要离散化,2 什么是数据的离散化,3 股票的涨跌幅离散化,4 小结。Pandas5.12 案例学习目标,学习目标,1 需求,2 实现,1.独立同分布(i.i.d.),2.简单解释 — 独立、同分布、独立同分布。
全套笔记资料代码移步 前往gitee仓库查看
感兴趣的小伙伴可以自取哦欢迎大家点赞转发~ 全套教程部分目录 部分文件图片 Matplotlib
学习目标
应用Matplotlib的基本功能实现图形显示应用Matplotlib实现多图显示应用Matplotlib实现不同画图种类
3.3 常见图形绘制
学习目标 目标 掌握常见统计图及其意义 Matplotlib能够绘制折线图、散点图、柱状图、直方图、饼图。
我们需要知道不同的统计图的意义以此来决定选择哪种统计图来呈现我们的数据。
1 常见图形种类及意义
折线图以折线的上升或下降来表示统计数量的增减变化的统计图
特点能够显示数据的变化趋势反映事物的变化情况。(变化)
apiplt.plot(x, y) 散点图用两组数据构成多个坐标点考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。
特点判断变量之间是否存在数量关联趋势,展示离群点(分布规律)
apiplt.scatter(x, y) 柱状图排列在工作表的列或行中的数据可以绘制到柱状图中。
特点绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计/对比)
apiplt.bar(x, width, aligncenter, **kwargs)
Parameters:
x : 需要传递的数据width : 柱状图的宽度align : 每个柱状图的位置对齐方式{‘center’, ‘edge’}, optional, default: ‘center’**kwargs :
color:选择柱状图的颜色直方图由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据范围纵轴表示分布情况。
特点绘制连续性的数据展示一组或者多组数据的分布状况(统计)
apimatplotlib.pyplot.hist(x, binsNone)
Parameters:
x : 需要传递的数据
bins : 组距饼图用于表示不同分类的占比情况通过弧度大小来对比各种分类。
特点分类数据的占比情况(占比)
apiplt.pie(x, labels,autopct,colors)
Parameters:
x:数量自动算百分比
labels:每部分名称
autopct:占比显示指定%1.2f%%
colors:每部分颜色2 散点图绘制
需求探究房屋面积和房屋价格的关系
房屋面积数据
x [225.98, 247.07, 253.14, 457.85, 241.58, 301.01, 20.67, 288.64,163.56, 120.06, 207.83, 342.75, 147.9 , 53.06, 224.72, 29.51,21.61, 483.21, 245.25, 399.25, 343.35]房屋价格数据
y [196.63, 203.88, 210.75, 372.74, 202.41, 247.61, 24.9 , 239.34,140.32, 104.15, 176.84, 288.23, 128.79, 49.64, 191.74, 33.1 ,30.74, 400.02, 205.35, 330.64, 283.45]代码
# 0.准备数据x [225.98, 247.07, 253.14, 457.85, 241.58, 301.01, 20.67, 288.64,163.56, 120.06, 207.83, 342.75, 147.9 , 53.06, 224.72, 29.51,21.61, 483.21, 245.25, 399.25, 343.35]
y [196.63, 203.88, 210.75, 372.74, 202.41, 247.61, 24.9 , 239.34,140.32, 104.15, 176.84, 288.23, 128.79, 49.64, 191.74, 33.1 ,30.74, 400.02, 205.35, 330.64, 283.45]# 1.创建画布plt.figure(figsize(20, 8), dpi100)# 2.绘制散点图plt.scatter(x, y)# 3.显示图像plt.show()3 柱状图绘制
需求-对比每部电影的票房收入 电影数据如下图所示 准备数据
[雷神3诸神黄昏,正义联盟,东方快车谋杀案,寻梦环游记,全球风暴, 降魔传,追捕,七十七天,密战,狂兽,其它]
[73853,57767,22354,15969,14839,8725,8716,8318,7916,6764,52222]绘制柱状图
代码
# 0.准备数据# 电影名字movie_name [雷神3诸神黄昏,正义联盟,东方快车谋杀案,寻梦环游记,全球风暴,降魔传,追捕,七十七天,密战,狂兽,其它]# 横坐标x range(len(movie_name))# 票房数据y [73853,57767,22354,15969,14839,8725,8716,8318,7916,6764,52222]# 1.创建画布plt.figure(figsize(20, 8), dpi100)# 2.绘制柱状图plt.bar(x, y, width0.5, color[b,r,g,y,c,m,y,k,c,g,b])# 2.1b修改x轴的刻度显示plt.xticks(x, movie_name)# 2.2 添加网格显示plt.grid(linestyle--, alpha0.5)# 2.3 添加标题plt.title(电影票房收入对比)# 3.显示图像plt.show()参考链接
[
4 小结 折线图【知道】 能够显示数据的变化趋势反映事物的变化情况。(变化) plt.plot() 散点图【知道】 判断变量之间是否存在数量关联趋势,展示离群点(分布规律) plt.scatter() 柱状图【知道】 绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计/对比) plt.bar(x, width, aligncenter) 直方图【知道】 绘制连续性的数据展示一组或者多组数据的分布状况(统计) plt.hist(x, bins) 饼图【知道】 用于表示不同分类的占比情况通过弧度大小来对比各种分类 plt.pie(x, labels, autopct, colors)
Numpy
学习目标
了解Numpy运算速度上的优势知道数组的属性形状、类型应用Numpy实现数组的基本操作应用随机数组的创建实现正态分布应用应用Numpy实现数组的逻辑运算应用Numpy实现数组的统计运算应用Numpy实现数组之间的运算
4.1 Numpy优势
学习目标 目标 了解Numpy运算速度上的优势 知道Numpy的数组内存块风格知道Numpy的并行化运算 1 Numpy介绍 NumpyNumerical Python是一个开源的Python科学计算库用于快速处理任意维度的数组。
Numpy支持常见的数组和矩阵操作。对于同样的数值计算任务使用Numpy比直接使用Python要简洁的多。
Numpy使用ndarray对象来处理多维数组该对象是一个快速而灵活的大数据容器。
2 ndarray介绍
NumPy provides an N-dimensional array type, the ndarray,
which describes a collection of “items” of the same type.NumPy提供了一个N维数组类型ndarray它描述了相同类型的“items”的集合。 用ndarray进行存储
import numpy as np# 创建ndarrayscore np.array(
[[80, 89, 86, 67, 79],
[78, 97, 89, 67, 81],
[90, 94, 78, 67, 74],
[91, 91, 90, 67, 69],
[76, 87, 75, 67, 86],
[70, 79, 84, 67, 84],
[94, 92, 93, 67, 64],
[86, 85, 83, 67, 80]])score返回结果
array([[80, 89, 86, 67, 79],[78, 97, 89, 67, 81],[90, 94, 78, 67, 74],[91, 91, 90, 67, 69],[76, 87, 75, 67, 86],[70, 79, 84, 67, 84],[94, 92, 93, 67, 64],[86, 85, 83, 67, 80]])提问:
使用Python列表可以存储一维数组通过列表的嵌套可以实现多维数组那么为什么还需要使用Numpy的ndarray呢
3 ndarray与Python原生list运算效率对比
在这里我们通过一段代码运行来体会到ndarray的好处
import random
import time
import numpy as np
a []
for i in range(100000000):a.append(random.random())# 通过%time魔法方法, 查看当前行的代码运行一次所花费的时间%time sum1sum(a)bnp.array(a)%time sum2np.sum(b)其中第一个时间显示的是使用原生Python计算时间,第二个内容是使用numpy计算时间:
CPU times: user 852 ms, sys: 262 ms, total: 1.11 s
Wall time: 1.13 s
CPU times: user 133 ms, sys: 653 µs, total: 133 ms
Wall time: 134 ms从中我们看到ndarray的计算速度要快很多节约了时间。
机器学习的最大特点就是大量的数据运算那么如果没有一个快速的解决方案那可能现在python也在机器学习领域达不到好的效果。 Numpy专门针对ndarray的操作和运算进行了设计所以数组的存储效率和输入输出性能远优于Python中的嵌套列表数组越大Numpy的优势就越明显。
思考
ndarray为什么可以这么快
4 ndarray的优势
4.1 内存块风格
ndarray到底跟原生python列表有什么不同呢请看一张图 从图中我们可以看出ndarray在存储数据的时候数据与数据的地址都是连续的这样就给使得批量操作数组元素时速度更快。
这是因为ndarray中的所有元素的类型都是相同的而Python列表中的元素类型是任意的所以ndarray在存储元素时内存可以连续而python原生list就只能通过寻址方式找到下一个元素这虽然也导致了在通用性能方面Numpy的ndarray不及Python原生list但在科学计算中Numpy的ndarray就可以省掉很多循环语句代码使用方面比Python原生list简单的多。
4.2 ndarray支持并行化运算向量化运算
numpy内置了并行运算功能当系统有多个核心时做某种计算时numpy会自动做并行计算
4.3 效率远高于纯Python代码
Numpy底层使用C语言编写内部解除了GIL全局解释器锁其对数组的操作速度不受Python解释器的限制所以其效率远高于纯Python代码。
5 小结 numpy介绍【了解】 一个开源的Python科学计算库 计算起来要比python简洁高效 Numpy使用ndarray对象来处理多维数组 ndarray介绍【了解】 NumPy提供了一个N维数组类型ndarray它描述了相同类型的“items”的集合。 生成numpy对象:np.array() ndarray的优势【掌握】 内存块风格 list -- 分离式存储,存储内容多样化ndarray -- 一体式存储,存储类型必须一样 ndarray支持并行化运算向量化运算 ndarray底层是用C语言写的,效率更高,释放了GIL
未完待续 同学们请等待下一期
全套笔记资料代码移步 前往gitee仓库查看
感兴趣的小伙伴可以自取哦欢迎大家点赞转发~