当前课程知识点:计算思维与人工智能基础 >  第三部分:python基础 >  第八章:python生态库 >  8.9第三方库-numpy库(下)

返回《计算思维与人工智能基础》慕课在线视频课程列表

8.9第三方库-numpy库(下)在线视频

下一节:8.10第三方库-pandas库

返回《计算思维与人工智能基础》慕课在线视频列表

8.9第三方库-numpy库(下)课程教案、知识点、字幕

Numpy的广播规则

广播是Numpy对不同形状的数组进行数值计算的方式

对数组的算术运算通常在相应的元素上进行

运算遵循以下规则

第一呢是让所有输入数组都像其中shape最长的数组看齐

shape中不足的补齐

第二是输出数组是由输入数组

shape的各个轴上的最大值来组成的

我们来看一个例子

我们现在有两个数组a四行三列的这样的一个数组

和b一行三列这样这个数组来进行加的运算

它们的形状是不一样的

是他们要进行运算的时候是遵循Numpy的广播规则

那么第一步呢是要把形状不同的b

他要进行拉伸而拉伸成跟a一样的

那么他就有四行三列这样子的

然后呢输出的这个形状的是遵循ab里面的shape

最大的行是有四行

列是有三列组成

所以这个结果呢

这时候就应该跟a的形状是一样的

让他们在计算中的具体的数据是怎么样取的呢

下面这个规则

如果输入的数组的某个轴和输出数组对应轴的长度相同

或者是其长度为1时

这个数组能够用来进行计算

否则的话就会出错

我们可以看我们给的这个数组呢

如果有一a那么b其实是给的

他现在是给的是一行三列

那么还有一种可能是可以给的是四行一列

他也可以进行运算是一或者是跟他是一样

否则的话他就会报错

不能及时用了广播规则也不能进行来计算的

那么第四点呢

我们可以当输入数组某个轴的长度为一时的

沿着此轴运算时

都用此轴上的第一组值

他们在这个取值的时候最后运算的时候

也许说b的这个值的话

他就是要沿着这个我们伸展的这个轴上面、

也就是行这个轴上面的要把它复制

复制跟第一行的元素是一样的来进行计算

我们来看一个例子

有一个a这样的它是由四行三列组成的

那么输出的元素是这样子

那么b可以输出来我们开只有一行三列这样组成

那么在要运行进行计算的时候

我们说做对他做加法和乘法的时候

他都是用运用到了Numpy的规则

首先把它拉伸成同样是四行三列

然后他的元素的组成就是123来复制

所以呢他做加的运算的时候相当于零

这一行跟他加那么第二行也是跟他加第三行跟他加

第四行也是跟他每个元素相加

那么得到了下面的这个数组

相乘的也是每一行的对应元素相乘

所以得到下面这样的一个结果

这就是我们Numpy规则的使用

Numpy中矩阵的运算

Numpy中包含了一个矩阵的模块

Numpy.matlib该模块中的函数返回的是一个矩阵

而不是一个ndarray的一个数组对象

他们都这个数组对象和Numpy的这个矩阵

都可以用于处理行列表示的数字元素

也就像我们的数组一样的

那么矩阵数组都是由数组元素组成的

那么用mat函数呢

转化为这个矩阵后呢

他可以进行一些线性代数的操作

比如说我们矩阵求逆呀

或者是矩阵的线性代数方程和求解都是可以使用

那么在都要通过mat函数进行转换

那么下面这个是我们常见的一些矩阵的运算

通过mat函数把这个一个数组把它转换成矩阵

mat a1 a2 然后这两个a1 a2就可以做一些矩阵的相乘

矩阵的点成以及矩阵的求逆转制

对某一列求和某一行求和或者是指定的某一个行列求和

以及求它的最大值等等

矩阵表达式的运算

我们在jupyter下看一下它的运算结果

矩阵的操作

我们在jupyter下看

首先我们通过np.array生成一个数组

然后完成一些矩阵的基本的运算

比如说我们的矩阵的转置

我们可以看到这是我们生存的这个数组对象123345678

这样的一个可以表示一个矩阵

那他就可以进行转制的运算

除了这个运算呢

他也可以对一些按照行求这个矩阵里面的最小值

也可以做一些按照行求最小

列求最小或者是做一个基本的矩阵的相乘

我们可以看到

他都可以正常运行的矩阵里面行的最小列的最小

以及所有元素里面的他最小值都可以

那么这个后面的我们这个输出的是

前面这个我们生成的a的矩阵

和我们现在这个c的矩阵

两个巨震的乘积而得到的一个结果

那也可以通过我们通过np.mat这个函数

来进行创建一个矩阵

创建的矩阵以后呢

他就可以做相应的点成乘积矩阵的相乘以及矩阵的点成

还可以做矩阵的求逆的运算

这就是特别的一个代数的运算

那么其他的像列求和

行求和以及指定的某一个列求和最大值都是可以完成的

我们运行一下

那他可以得到一个正常的结果

这是上面这个矩阵求得矩阵

后面的我们就可以按照他的转制

只是按照这个行求的最大值

列求的最大值以及某一个行的最大值

那么最后一个a10

最后一个是计算的指定列里面的最大值

那么这个指的是第二列的最大值

a10出来的第二列

相当于这一点的一个最大值

那么最后一个我输出的是

matrix这个a4这个矩阵里面所有行的最大值

那么这个所有行他只有两行

那也就是每一行的最大值

那么这个数组里面每一行的最大值对应的

这就是我们一些矩阵常用的运算

Numpy文件的交互

我们可以通过np.savetxt把指定的Numpy数组对象存储到文件中

这个文本文件可以是CSV文件也可以是text的文件

那我们通常用的CSV文件比较多

我们知道CSV是一个有结构的文本文件

那么它从数组的话会更好一些

它们存储的方式呢

就是通过savetxt

这样的后面可以带指定的格式和分割符

把我们的Numpy数组存入到文件中

那么也可以通过np.loadtet把我们指定文件的数据

取出存到我们一个unpack数组对象里面

也可以指定它的类型以及它的分隔符

如果我们这个unpack等于False的时候就存入到

一个np的数组对象里

如果是true的时候他读入的数据将分别写入不同的数组变量里

那我们也有一个简单的方式就可以我们unpack

可以很方便的把数组存入到一个文件里

也可以通过np.load来取这个文件

那么取个文件放到我们的速度变量里面就可以了

我们看一下在jupyter文件的存取的简单的应用

我们首先来看通过np.loadtxt来去从文本文件里面

读取数据存入到一个x的np数组中

我们来看一下test下面这个01点的这个文本文件

它是里面存储的数据是这样子

第一行是一个字符串

那么第二行第一列也是一个字符串

那么只有这部分才是数值

所以我们要只可以把数值存入到我们numpy的数组里面

所以我们读入进来以后可以带通过一个dkiprows

来跳过我们的第一行

那么usecols是我们要使用的第一第二第三列

那么也就把第零列要剔除掉

所以我们读进来的这个np数组的数据

就是零一tet文件中数值的部分

我们运行一下可以看的到

与我们这个那么读进来的就是我们的数值的这一步

另外呢我们可以看

下面这一个是我们通过

np.array生成了一个数组对象

然后通过savetet来把我们这个a这个数组

存到指定的路径下的文件里面

取名a.csv

后面的mt是他的格式是浮点数

分隔符是空格

存入了以后呢

我们后面通过loadtxt把它取出

那我们这个里面分隔符还是空格

这个里面的unpack是我们只是把它取出来

放到一个数组对象里面

运行以后我们可以看到这个就是我们刚才存进去的是123

只不过我们的格式是浮点数

所以他取出来的时候

这个array里面的值就变成一点二点

就是浮点数浮点类型的数据了

下面给大家会介绍到这个matplotlib这个第三方库

那么他是一个画图的

我们可以只看这一句

就是我们通过matplot.csv这个文件

里面的数据读进来以后load取进来以后放到xy

分别放到两个数组对象里面

那么这样的话就可以通过x轴y轴来进行画图

运行以后我们可以看到

可以把画出来x坐标y坐标可以换这个直线图

那么这个matplot.csv里面的数据是什么样子的呢

我们可以看到他应该是这样一列这样一列

所以他们分别对应的x这一列

那么这一列是对应的y来存放数据

那这就是我们numpy中文件的交互的一个简单的应用

我们这节课的内容就到这

计算思维与人工智能基础课程列表:

第一部分:计算思维

-1.计算思维的提出

-2.计算思维的要素与应用

-3.培养计算思维

-4.智能时代的教师与教学

-章测试

第二部分:人工智能

-1.人工智能的发展

-2.人工智能的实现与机器学习

-3.人工智能产业

-章测试

第三部分:python基础

-第一章:python简介

--1.1python的介绍

--1.2.anaconda的安装

--章测试

-第二章:编码规范

--2.1 python编码规范

--2.2常量和变量

--章测试

-第三章:数据类型

--3.1数据类型概述

--3. 2.数据转换

--3.3数据类型区别

--章测试

-第四章:基本运算

--4.1.基本运算符

--4.2比较运算符

--4.3逻辑运算符

--4.4位运算符

--4.5成员运算符与身份运算符

--4.6运算符的优先级

--章测试

-第五章:程序控制结构

--5.1顺序结构

--5.2条件结构

--5.3循环结构

--5.4跳转结构

--5.5异常处理

--章测试

-第六章:函数、模块与面向对象

--6.1函数的定义与调用

--6.2面向对象

--6.3魔法函数的应用

--6.4模块与包

--章测试

-第七章:文件操作

--7.1文件的打开与读取

--7.2文件的写入

--7.3CSV模块的应用

--章测试

-第八章:python生态库

--8.1第三方库的安装

--8.2标准库-Os库与Sys库

--8.3.标准库-Time库

--8.4标准库-Random库

--8.5标准库-Turtle库

--8.6第三方库-词云库

--8.7第三方库-pyinstaller库

--8.8第三方库-numpy库(上)

--8.9第三方库-numpy库(下)

--8.10第三方库-pandas库

--8.11第三方库-matplotlib库

--章测试

-第九章:TensorFlow基础

--9.1TensorFlow简介

--9.2TensorFlow 2.0的改进

--9.3TensorFlow的数据应用

--9.4 TensorFlow的设备应用

--9.5.TensorFlow中常用操作

--章测试

-第十章:实例分析与实践

--10.1认识回归问题

--10.2房价的预测

--10.3手写数字识别

--10.4卷积神经网络的介绍

--10.5全连接网络的搭建

--10.6卷积神经网络的实现服饰图片的分类

--10.7LeNet的介绍

--章测试

-第十一章:人工智能在自然语言中的应用

--11.1自然语言处理

--11.2命名实体识别技术

--11.3词向量表示

--11.4自然语言处理的挑战及应用

--章测试

8.9第三方库-numpy库(下)笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。