00:01
1.4必要的库和工具。了解s learn及其用法是很重要的,但还有一些其他库也可以改善你的编程体验。S论是基于朗派和塞派的科学计算库的。除了朗派和塞派,我们还会用到pandas和Mac Li我们还会介绍notebook,一个基于浏览器的交互式编程环境。简单来说,对于这些工具,你应该了解一下内容,以便充分利用S。注意,如果你不熟悉朗派或Mali,我们推荐阅读赛派讲稿的第一章。看到1.4.1节notebook notebook是可以在浏览器中运行代码的交互环境。这个工具在探索性数据分析方面非常的有用,在数据科学家中广为使用。虽然就非notebook支持多多种编程语言,但我们只需要支持Python即可用就notebook整合代码、文本和图像都非常的方便。实际上本书所有内容都是以notebook的形式进行编写的。
01:07
所有代码示例都可以在github下载。也就是这里。看到1.4.2节朗派,朗派是Python科学计算基础包之一,它的功能包括多维数组。高级数学函数,比如线性代数运算和傅立叶变换。线性代数运算内容非常的多。把他们系统的学完,太浪费时间,到时候用到我会讲。傅立叶,变化稍后我会提到,以及尾随基数生成器。在learn中,朗派数组是基本数据结构s learn接受朗派数组格式的数据,你用到的所有数据都必须转化成为囊派数组。朗派的核心功能是ND类及多维N维数组,数组所有元素必须是同一类型。
02:04
首先来讲一下怎么去使用,就notebook。打开之前创建的项目,在第一章的目录下面新建一个notebook。在这里输入对应的Python语句。运行。第一次运行会有点慢,因为它在启动就搜我。这里是对应的输出。
03:28
本书会经常用到朗拍,对于朗拍ND类的对象,我们将其简称为朗拍数组,或者说是数组。刚才提到了,哪怕有傅立叶变化。他确实有。对应的API是这两个朗派点fftt.fftt以及朗派点fftt.iftt。最简单的用法。传入一个参数,这个参数是一个类似一位数组的对象元素,可以是负数。
04:07
FFTT函数表示的是一为离散复立叶变化I fftt函数表示的是一为离散复列逆变化示力。很多人可能看不懂这个事例是怎么回事。下面来简单介绍一下傅立变换能将满足一定条件的某个函数表示成为三角函数正弦或余弦函数sin或Co sin或者他们积分的线性组合。在不同研究领域,傅立叶变换具有多种不同的变体形式,如连续傅立叶变换和离散傅立叶变换。最初,傅立叶分析是作为热过程解析分析的工具被提出的。想深入了解的可以看一下这两个视频。因为。朗派API中只存在离散负列变换。所以重点讲一下离散傅立叶变化,为了在科学计算和数字信号处理等领域。
05:01
使用计算机进行傅立叶变换,必须将函数定义在离散点分离区域内。且满足有限性或周期性条件。在这种情况下,使用离散傅立叶变换变换公式。AK等于M等于零到N减西格玛am乘上一的负二派IMK除以。其中。K属于零到N减一的整数,N是一位数组A的长度逆变化公式,Am等于N分之一。K等于零到N减西格玛AK乘上一的二派IMK除以N。大家可以看一下公式。
06:02
这个是正变换公式,这个是逆边框公式。其中M属于零到一减一的整数。N是异位数组大于长度,直接使用这个公式的计算复杂度是O平方,而快速处理变换可以将复杂度改进为O乘上log点。计算复杂的降低以及数字电路计算能力发展,使得离散福利叶变换成为在数字信号处理领域的十分重要,而且使用的方法一旧是用之前的事例进行讲解。在这个例子中,傅立叶变换的例子中。N等于五,因为数组的长度是五嘛。录音的傅列变号表如下。参考的是这个公式,我们来算一下。大于零。
07:00
K等于零带进来。E的零次方等于一,也就是对这个数组求和。零不用去管,0.5加一等于1.51.5加1.5等于三三加二等于五。没有问题。在这个复列逆变换的例子中。N等于五逆变换表。我们依旧是求小A0。小A0等于什么1/5?乘上大A0的求大A的求和。E的这一块忽略掉,因为是零次方等于一。这块求和,我上面已经算过了,我用的都是一个数组。求和会得到。五。五乘以1/5就算五除以五等于一。补充一点东西,朗拍数字索引和切片。只要求大家掌握二维就行,一位数组从列表二维数组,所以获取D行DJ列的元素有两种写法,A中括号I中括号G和A中括号I逗号G。
08:07
切片。行切片R1冒号R冒号RS或者R1冒号R,其中R1R和RS的意思参考类的切片。列切片,C1冒号C2,冒号CS或者C1冒号C2,其中C1 C2 CS的意思请参考列表,切片选择一块区域不一定是连续的,可以这么去写,A中括号行切片,逗号列切片。千万不要斜称A中括号行切片,中括号列切片。当然可以混合使用索引切片、混合AI逗号裂切片或者A。中括号中括号列切面表示选取第行中选择全部列的一部分值。返回一个一位数组。第二种,A行切片逗号J。千万不可以写成A中货航切片中货G。它表示选取的是DJ列中选择全部行的一部分值,也是一个一位数组。
09:05
这两个为什么是错的?为什么和这个这两个不增加,就是这个和这个为什么不增加,还有这个和这个为什么不增加。有点Python基础应该会知道为什么。我们来看到1.4.3节S派。S派是pthon中用于科学计算的函数集合,它具有线性代数、高级程序、数学函数优化、信号处理、特殊数学函数和统计分布等多项功能。S论利用S派中的函数集合来实现算法。对我们来说,S派中最重要的是S派点SPA,它可以给出基数矩阵SPA matrix基数矩阵S愣中数据的另一种表示方法。如果想保存一个大部分元素都是零的二维数组,就可以使用奇数矩阵。
10:45
冷派ari。
11:16
这个I这个函数就好是创建一个二维数组对角线,主对角线是一。其余位置都为零,这个四参数四表示的意思是。四行四列。
12:56
输出的结果表示的意思是第零行,第零列。
13:01
存放分率元素一第一行第一列存放分离元素一,依此类推,其余位置全是零。通常来说。创建稀疏矩阵的稠密表示dance representation是不可能的,因为太浪费内存了,所以我们只需要创建,直接创建其稀疏表示。SPA representation下面给出的是创建统一系数矩阵的方法。用的是COO格式。
14:59
输出的意思和上面同理。
15:04
关于赛派稀疏矩阵的更多内容,可以查阅一下赛派的讲稿。塞派稀疏矩阵。总共有七种存储格式,Dil dok Co CSR CS cb SR。我们首先来简单介绍一下矩阵是什么。一个矩阵是一个数学对象,一个二维数组的数据结构。矩阵的重要特征,内存一次性分配给其中所有的元素,通常是一个连续的内存块。访问其中一个元素非常的快,时间复杂度O1。为什么选择系数矩阵?因为普通矩阵空间复杂度是O平方。稀疏矩阵和稀疏矩阵存储策略稀疏矩阵是一个矩阵,其中有大量的零元素。
16:04
存储所有的零元素非常的浪费空间,我们可以只存储非零元素。思想压缩。优点节省大量存储空间,缺点取决于实际存储,实际存储策略,典型应用偏微分方程图论、自然语言处理等等等等。存储策略我们一个一个来看,首先看到比较简单的对角线格式,D对角线格式是一种非常简单的存储方式。常规用法。赛派点巴点dim。Data of set2元组shapen。参数得塔一个两派二维数组,二维数组中每一个一维数组表示某一条对角线所对应的值。格式要求设计形状为MD和ND列必须确保ND等于MN的最小值,也就是让元素占满主对角线。参数set一个囊派一为整数数组,其中每个元素表示相对于主对角线的偏移量。如果当其元素等于零,设计索引为index,那么一维数组贝塔index存放在主对导线上,如果小于零,设计索以index,那么一维数组贝塔index就以主对导线为基准向下平移A单位,移出界的元素自然丢弃。如果大于零。
17:22
那么一维数组贝塔index就以主对角线为基准向上提移A个单位,移出界丢掉。参数shape,一个二元组,其中两个元素都是大于零的整数,M矩阵的行,N矩阵的列。优缺点。通过使用SPA to可以让矩阵成向量的运算很快。直接操作数字数组,没有切片,无法随机获取其中的元素,应用相当特殊的矩阵,非零元素集中在主对角线及其附近。求解偏微分方程,用于迭代求解。
18:11
这个二维数组。这一个一为数组。是如何变道?这个矩阵的。我来简单说一下。1234。对应的偏移是零,所以存放在主对角线上。5678。对应的偏移是负一,所以沿主对角线向下移动一个单位。移出界的丢掉。九十十一十二。对应偏移是二向上平移两个单位,移出介子丢掉。移出戒子,丢掉。只需要关注这四行。
19:01
也就是这一块区域,其他位置就当没看到。空,空位不灵。转到上面来,就是这个矩阵。看到第二个格式,Lil嵌套列表格式。嵌套列表格式通过基于行的列表进行存储的。基于行的列表满足如下三个要求,每一行是一个针对费力元素的列索引的P有序列表。所有行存储在一个朗派数组中。非力元素按类似的方式存储增量构造系数矩阵的有效方法。切片非常灵活,改变系数结构也是非常的高效。运算速度慢,因为记于行,所以对列进切进行切片也很慢。常规用法塞派点八点LI2元组m ma矩阵行N矩阵列应用,当一开始不知道或者要频繁修改系数矩阵的规律的时候,可以选择嵌化列表格式例子,从一个文本文件中读取系数矩阵常规构造过程。先构造一个全磷元素的稀疏矩阵。
20:00
Mtx等于。点lil max452元组。然后构造一个元素块。一二为数组,其形状为M行N列,M小于等于大MN小于等于大N。我们把元素块放在指定的位置。也就是mtx。这个矩阵是四行五列。这个表示。第行第一行。两行画出来的区域和。第一列、第二列、第三列。这三列画出来区域的交集。把这一块区域。放过来。更多的切片和索引操作。这个表示的是。获取第零列、第一、第零行、第一行的所有列。
21:01
第零行。0120没有问题。第一行3010也没有问题。这个表示的是获取第一行。第零列,第二列。的所有列的所有数据。第一行。3010第零列三第一列一。也没有问题。看到第三个格式,字典间格式dok构造函数名对应的类是字典的子类。这个字典的键。是一个其元素都大于等于零的整数二元组I2元组。的第一个元素对应行号,第二个元素对应列号。字点的值就是建在矩阵中位置的元素非零的取值。增量构造系数矩阵的有效方法,获取某个元素的时间复杂度接近O1。切片非常灵活,改变系数结构非常高效,一旦创建可以轻而易举的转换为一个坐标格式的稀疏矩阵,运算慢,因为需要遍历字典建制对应用。当一开始。
22:09
或者。当一开始不知道或者你要频繁的修改稀疏矩阵的规律的时候,可以选择字典键格式,常规用法,S、派点、八点do ma2元组d type。参数M矩阵的行参数N取值分列可选参数d type取珍珠元素的类型。通过一一复制,也就是常规的方法构造一个字典点格式的系数矩阵。这个表达式是一个布尔值。False表示零处表示一。1.0就类似做了一个隐式转换,把它转换成了浮点数。
23:03
通过这样的方式。构造出的矩阵是对角线为零,其余位置全是一的元素。其余位置全是一这么一个矩阵。可以切片和索引第一行第一列主对角线不用看就是零。第一行。第一列、第二列。第一行第一列第二列零一。没有毛病。第二行第一行。第一列、第二列。先看第二行,第二行第一列第二列一零。第一行第一列第二列零一。需要注意切片。变量的变化情况。二一不是一二。这里是一。看到最简单的格式吧。COO坐标格式坐标格式又名行列值格式或者三元组格式,它包含三个朗派数组肉column和data。
24:05
Data I对应的位置是肉爱,允许出现重复项。对于不同的I值,可能有相同的肉I quality和塔I。可以快速构造一个稀疏矩阵。无论是从COO格式转换到CSR格式或者CS格式,还是从这两种格式转换到COO格式,非常的迅速。利用八措可以快速进行矩阵、乘向量等运算,直接操作数字数组,没有切片,无法直接运行算术运算应用。在不同稀疏矩阵格式之间促进快速转换,当转换到其他格式的时候,重复的像被丢在了一起,被累加到了一起,促进高效的构造。有限个元素的矩阵常规用法。第一种,塞派点巴点Co magic的二元组MD type。M矩阵行N矩阵列可选参数d type矩阵元素的类型第二种用法,S派点八填Co max。
25:01
一个二元组,第一个元素得塔,第二个元素还是一个二元组,在这个二元组中,第一个元素是I,第二个元素是G。C等于I mean。A啊,非元素构成的一位数组I。非零元素所在的行的索引构成的异位数组。若指定可选参数shape,那么其中每个元素的取值范围是零到M减一的整数,否则任意非负整数参数J非零元素所在的列,所以构成异位数组。若指定可选参数she。那么其中每个元素取值范围零到N减一次整数,否则任意非负整数。可选参数she一个二元组,其中两个元素都是大于零的整数M矩阵,行矩阵列。必须确保贝塔、IG这三个数组长度相等。构造一个全0CO格式的稀疏矩阵。利用第一种方法。利用第二种方法构造一个Co格式的C数矩阵。这三个数组变到这里怎么变的?我来说一下,零加不是第零行,第零列存储分离元素四。
26:04
第三行第三列存储分离元素五。第一行第一列存储非零元素七,第零行第二列存储非零元素九,其余位置全是零,需要注意它会把重复的元素累加到一起在这里第零行第零页。存放非元素一,他写了三次,那么。一加一再加一就是一乘三等于三。所以第零行第零的存放费率是三。其余位置同理。没有切片和随机获取元素等相关操作,下面来看到最难的。三个系数矩阵格式CS行压缩系数行格式CS格式是面向行进行压缩的格式,包含三个囊派数组,Ins in d p和data。Ins列索引构成的异位数组。塔所力元素。构成的一个一位数组in d PR。索引指针利用其自身索引I来指向第二行元素的列索引,其长度等于行数加一,最后一个元素对应着有几个非零元素?
27:06
第一行这里元素通过得塔。索引指上I到索引指上I加一来获取对应的列通过in索引指上I到索引指上I加一来获取。D行DJ列元素通过贝塔。索引指针I加上K来获取,其中K是这在in索引指针I到索引指针I加一的位置。通过SPA to工具可以快速实现矩阵和向量相乘等于运算,行切片和基于行的运算非常高效,列切片速度慢,改变系数结构代价高。应用实际运算。常规用法,第一种塞派点spa.cs magicx mn2因素,D type m矩阵行N矩阵列可选参数,D type矩阵中元素类型。第二种用法,散派点巴点CSR max。二元组。第一个元素得塔,第二个元素还是一个二元素。第一个元素。
28:00
Index,第二个index shape等于M。参数得塔,非零元素构成的一位数组参数柔这个非零元素所在的行的索引构成的一位数组。若指定可选参数ship,那么其中每个元素取值范围是零到M减一的整数,否则任意非负整数参数row this非力元素所在列构成了一位数组。若指定可选参数she,那么其中每个元素的取值范围是零高0.1的整数,否则任意非负整数可选探数she一个二元组。两个元素都是大于零的整数M矩阵行N矩阵列。必须确保data、容、in column3个数字长度相等。第三种用法,散派点spa.cs传入一个三元组。Shape等于M。In列索引构成的一位数组,其长度等于得塔数组的长度。若指定可选参数ship,其中的元素取值范围是零到N减一的整数,否则任意非负整数参数得塔非零元素构成的一位数组参数索引指针in DPI,利用其自身索引I来指向D行元素的列索引,其长度等于。
29:06
行数加一最后一个元素对应着有几个非零元素,也就是得塔数组的长度。如果指定可选参数shape RP啊。一直到倒数第二个元素为止,每个元素的取值范围是零到N减一的整数,否则任意非负整数。可选参数shape,一个二元组,两个元素都是大于零,整数M矩阵,行矩阵列。首先利用第一种方法构造一个CSR格式的全离系数矩阵。通过第二种方式来构造一个CSR格式的系数矩阵。通过第三种方式。来构造一个CSR格式的系数矩阵。接下来我来讲一下这三个数组。怎么变到这一个矩阵的?
30:01
首先。写出索引指针。数组索引和对应的值。然后。按照这样的方式来进行推导。I等于零,I加一等于一,Ind偏I等于零,In偏I加一等于二,A塔ind偏I到in加I加一等于一二。Ins in偏到in偏,I加一等于in,零到二等于二等于零,逗号二。也就是说,第零行有两个非零元素,一和二分别在。第零列和第二列。I等于一,I等于二的推导同理,大家可以自己去推一下。我在这里已经写下来了。我们看到csc格式压缩系数列格式,Csc格式是面向列进行压缩的格式,包含三个朗派数组,DS索引指针和得塔inds行索引构成的异位数组,Data塔非零元素构成的位数组。
31:03
索引指索引指针利用其自身索引I来指向BI列元素的行索引,其长度等于列数加一,最后一个元素对应的有几个分行元素,Di列的飞行元素通过得塔。Indpi到indp加一来获取其对应的行,通过ind索引指针I到索引指向S加一来获取。D行DJ列元素通过data。所以只是J再加上K来获取。其中K是I在。Inex索引指针,这一道索引指针G加一的位置,通过SPA to工具可以快速实现矩值和向量的相乘。这切片和基于列的运算非常的高效,行切片速度慢,改变稀疏结构代价高。应用实际运算常规用法第一种。S派点SPAs.CSM magic CS magicx mn2元组d type m矩阵的行,N矩阵的列d type矩阵中元素类型第二种用法塞派点spa.cs的参数二元组第一个元素这塔第二个元素还是一个二元组。
32:01
第一个元素inex,第二个元素index。She等于ma啊,非零元素构成的一维数组。柔非零元素所在的行索引构成的异位数组指定。若指定科学参数shape。那么其中每个元素取值范围零到M减一的整数,否则任意非负整数。参数column index,非零元素所在列的索引构成的一位数组。若指定可选参数she,那么其中每个元素的取值范围是零到N减一的整数,否则任意非负整数可选参数是一个二元组。其中两个元素都大于零的整数。M举证,行N矩阵列必须确保。Data index column inex这三个数组长度相等。第三种用法,赛派点spa.cc max。传入一个三元组。Shape等于mn inds行索引构成的一位数组。若指定可选参数shape,每个元素的取值范围是零到M减一的整数,否则任意非负整数参数得塔非零元素构成的一位数组。
33:04
参数。索引指针in d利用其自身索引I来指向BI列元素的行索引,其长度等于列数加一,最后一个元素对应着有几个分离元素贝塔数组的长度。若指定可选参数shape。RDPR。一直到。倒数第二个元素为止,每个元素的取值范围都是零到M减一的整数,否则任意非负整数。可选参数shape一个二元组,其中两个元素都是大于零的整数M矩阵好A矩阵列。构造一个csc格式的全面系数矩阵。用第一种方法。通过第二种方式来构造一个csc格式的新数矩阵。通过第三种方式来构造一个csc格式的系数矩阵。接下来我来讲一下。这三个数组。怎么变成这样一个矩阵的?
34:01
首先,依旧是。写出索引指针、数组索引和对应值。I等于零,I加一等于一,In dp加I等于in d加零等于零,In dp加I加一等于二,得塔in dp加I到ind加一等于,得塔零到二等于14NDC ind PI到ind PI加一。等于一列是零到二等于零二,也就是说第零列有两个非零元素一和四分别在第零行和第二行,I等于一,I等于二的推导过程类似。大家可以自己推一下。啊。快压缩行格式比SR格式类似于CSR格式。唯一不同的是,在比SR格式中,贝塔I对应一个矩阵二位数组快大小RC必须恰好能够划分矩阵的形状MN,也就是说M是R的整数倍,N是C的整数倍。为让大家理解比萨格式,先来说一下。
35:01
线性代数的相关内容正常的矩阵是这样子的,其中AI这是一个数,I是一到M的整数,这是一到M的整数。线性代数的分块矩阵。这有助于理解比格式。其中大AIG是一个矩阵,而一到M的整数,这是一到M的整数。在BSR格式中对应不同的I和J。AIG只有一个形状,也就是行和列相等。在线性代数的分块矩阵中没有这样的要求。依旧包含三个党派数组,Inds索引指针和data inds data中矩阵元素所在的列索引构成的异位数组。参考这里的分块矩阵。得塔由一个或多个非零组成二维数组构成的一个三维数组。索引矩阵利用其自身索引I来指向BI行元数,也就是矩阵的列索引,其长度等于原矩阵的行数除以分块矩阵的行数再加一最后一个元素对应的有几个非零矩阵?可以参考一下这里的分块矩阵D行非零矩阵元素通过得塔。
36:04
索引指上I到索引指上I加E来获取其对应的列。通过inds。I索引指上I到索引指上I加一来获取参考这里的分块矩阵。D行DJ列的矩阵元素通过得塔。索引指张I加上K来获取,其中K是这在in,索引指张I到索引指张I加一的位置。参考这的分块矩阵,通过SPA tool工具可以快速实现矩阵和向量的相乘等一些运算。因为做了分块,许多算术操作比CSR格式的技术矩阵快得多。应用可以参考CSR。常规用法第一种S派点spa.bs max mn2元组block size等于rcd type。参数M矩阵,行参数N矩阵列,可选参数d type矩阵中元素的类型,可选参数block size子矩阵的形状。R行C列派大小RC必须恰好能够划分矩阵从ma,也就是说M2的整数倍,NC的整数倍。
37:03
第二种用法,载派点spa.bs。对,他。肉,所以我要注意。和之前一样。这是一个二元组,二元组的第一个元素是得塔,第二个元素。是一个二元组,在这个二元组中,第一个元素是肉,第二个元素是等于ma。得参数得塔非元素构成的一维数组肉。费力元素所在的行索引构成的异位数组。若指定可选参数shape,那么其中每个元素取值范围是零到M减一的整数,否则任意非负整数参数。非零元素所在的列索引构成的一位数组,若指定是,那么其中每个元素取值范围零到N减一的整数,否则任意非负整数。可选参数shape移动二元组,其中两个元素都是大于零的整数M矩阵,行N矩阵列,必须确保贝塔、row和COLUMN3个数组长度相等。第三种,用法塞派点spa.bs传入一个三元组。
38:03
或者可以传出一个可选参数shape等于ma ind data中矩阵元素所在的列构成的一维数组参考分块矩阵。得塔由一个或多个非零矩阵,也就是二维数组构成的三维数组。设参数,得塔中每个矩阵元素都是二行C列。参数。In d PR索引指针,利用其自身索引来来指向BI行元素,也就是矩阵的列索引,其长度等于原矩阵的行数除以此矩阵的行数再加一。最后一个元素这个数组中最后一个元素对应着有几个非零矩阵?参考分块矩阵。若指定可选参数。从第零个元素到倒数第二个元素。中的每个元素的取值范围都是零到M除以二减一的整数,否则是任意的非负整数。可选参数she,一个二元组。其中两个元素都是大于零的整数M表示矩阵行M表示矩阵列,必须确保快大小RC。也就是参数得塔中每个矩阵元素的形状是二行C列必须恰好能够划分为矩阵的形状MN,也就是说M要是R的整数倍,NC的整数倍。
39:09
首先,构造一个比SR格式的权力系数只能快大小111行一列,类似于CSR和CSR不同的是。他还是分得快,哪怕只有一行一列。在这里构造一个比SR格式的权利清水快大角三号。虽然一和二圈一圈二的结果是一样的,但是内部存储机制不同,一的块大小是112的块大小是三二。第三种。通过。第二种方式。来构造一个比SR格式的系数矩阵快,大小一一类似于CSR。不同的是,就算是一行一列。我也是一个矩阵,不是一个数,CR格式中它是一个数。看到第三最后一种构造方式,通过第三种方法。
40:00
来进行构造。构造出来了之后。我们需要把。Mtx矩阵中。每个二乘二的矩阵看成一个整体。写成这样的格式。其中A00这个小矩阵一直到A22这个小矩阵。都写在这里。接下来。画出in p tr浊音指针。索引和对应的值取值这么一个表格,然后看到这里。然后就是推导I等于零,I加一等于一,Ind偏I等于IND0等于零,Inp加一等于ind偏PI加一等于二,得塔ind偏到ind偏加一等于,得塔零到二等于A00 a02。这两个矩阵。Indc indpi到ndpi等于indc,零到二等于零二及第零行。有两个非零矩阵元素。
41:04
A00和A02。零举证。一般都用大写的O。在描述。这两个矩阵元素在这里的第零列和第二列。I等于一,I等于二。情况与之类似,大家可以自己推一下。最后来看一些囊派函数。能派点once。根据shape和d type返回一个数组,用一来填充所有元素。Shape正整数或正整数序列返回一个数组的返回的数组形状,如果是一个整数或长度一的整数序列,该整数即为,创建一个一位数组,其长度为N,如果是长度大于一的整数序列,即为N1 N21直到NN,创建一个N为数组,N大于等于2D为对应的下标取值范围是负ni到ni减一的整数。
42:03
D type数组中元素的类型默认64位浮点数,也就是C语言的double类型。Order当创建一个多维数组时,选择行优先,存满一行,再存下一行,还是列优先存满一列,再再存下一列。这里总有两个取值,C或者FC表示行优先,也就是C语言风格,F表示列优先,For去语言风格。派点range。在给定的区间中返回均匀间隔的值,一个囊派数组,其中每个元素取值范围是start到stop。前闭后开,包含stop,不包含stop。如果start stop step均为整数,它就和Python内置函数range差不多,只不过它返回一个哪派,因为数组,而不是一个可迭代对象。当使用浮点数作为不长,比如0.1,结果会和预期的不一致,因为有些浮点数在计算机中无法被精确的表示。对于这样的情况,最好使用囊派点。参数大一个数,可选参数区间其实是默认零。
43:01
Stop,一个数区间终止时,除非step不是一个整数,而是一个浮点数,并且浮点数出现舍入误差会影响返回数组的长度,否则数组中的一个元素。范围不包含这个数。Step返回。数组相邻两个元素的差后项减前项就是等差数列的公差D默认值一如果step被设明为一个未知参数,那么start也必须给出。如果step被设明为一个未知参数,那么start也必须给出底type返回数组中元素的类型。如果未置,它会根据其他的参数来推断类型。还有一个函数哪派点来?Space在这里提到了。在给定区间中返回均匀间隔的值,一个党派数组。其中每个元素的默认范围是start到stop的B区间。可以通过指定endpoint等于false来。将其从区间中剔除。
44:03
参数,START1个数区间起点,STOP1个数区间中点。那返回的数组,返回数组的长度。And point布尔类型是否包含区间的中点?如果and point等处则包含区间中点,否则不包含。Step布尔类型是否返回步长。不常是数组相邻两个元素的差,也就是后项减前项就是等差数列的公差D。如果I step等于住。返回两个值,第一个值就是返回的数组,第二个值是不长,否则只返回一个值,也就是数组比态返回中返回数组中元素的类型,如果未指定,它会根据其他参数来进行推断。看到1.4.4节。Mac plus Mac lip是Python主要的科学绘图库及功能,为生成可发布的可视化内容,如折线图、直方图、散点图等,将数据以及各种分析可视化。
45:13
我们让可以让你产生更深刻的理解,而我们将使用ma lib完成所有可视化的内容。在stupid notebook中,你可以使用百分号ma Li notebook和百分号ma lib inline mini令将图像直接展示在浏览器中。我们推荐使用百分号ma lib notebook命令,它可以提供交互环境,虽然在书上使用的是百分号ma inline。下面我们和书上一样,来画一个正弦图像。
47:48
尝试运行一下。其中。差对应这里的参数。也就是。
48:00
XY每个点的取值。这个X表示的意思是对散点做标记,因为散点太多了。画出来的折线也就变得有点像一一条曲线。总共有100个3D。我们看到1.4.5节pandas pandas是用于处理和分析数据的pon库,它基于一种叫做data frame的数据结构,这种数据结构模仿了R语言中的data frame。简单来说,一个pandas data frame是一张表格,类似于Excel表格。pandas中包含大量用于修改表格、操作表格的方法,尤其是可以像circleq一样对表格进行查询和连接。哪派要求数组中所有元素类型必须完全相同,而判断不是这样,每一列数据的类型可以互不相同,比如整型、日期、浮点数和字符串。
49:12
Panda的另一个强大之处在于它可以从许多文件格式和数据库中提取数据,如circleql Excel文件和逗号分格值CSV文件。pandas的详细功能介绍与超出了本书的范围。但s mackinney的Python数据处理一书。是很好的参考指南。这本书。中文版。大家可以参考一下。对应的网站。下面我们利用字典来创建一个data frame。
52:18
运行之后对应的输出是这样子的,其中字典的键name location和A对应列的名字。字典的值。对,应该列。的取值。这个列表对应这一列,这个列表对应这一列,以此类推,这个0123表示的是索引的意思。查询这个表格的方法有很多种,下面我来举个例子。我就和书上一样。选择年龄大于30的。
53:01
所有。运行一下,看看年龄是不是大于30,都是大于30,看看这里年龄大于30等于几条数据,两条数据。那就没有问题了,最后看到1.4.6节MG乐本书的附加代码可以在GI下载。附加代码不仅包括本书的所有事例,还包括MG冷库。这是我们为本书编写的使用函数库,以免将代码清单与绘图和数据加载的细节混淆在混淆在一起。感兴趣的话,你可以查看仓库中的所有函数,但MG论模块细节并不是本书重点,如果你在代码中看到对了MG的调用。
54:04
通常是用来快速美化绘图。或者获取一些有趣的数据。本书会频繁使用朗派、Mac lib和pandas,所有代码都默认导入这些库。导入哪些库?怎么导入的?在书上的第九页。1.4.6级。那你写了?我们还假设你在PI notebook中运行代码,并使用100ONE号ma Li notebook或100ONE号ma liline魔法命令来显示图像。如果你没有使用就notebook或者这些魔法命令,那么就需要调用plt点数来显示图像。下面我们来简单说一下这个MG论怎么放到这个项目下面来。首先。进入。Github的网站。点击code,然后点击党楼的VIP。
55:03
会提示你保存位置,当然我是已经下载好了。下载好了之后。打开。解压。解压完成之后。看到MG的这个文件夹了,没有复制。然后粘贴到项目的根目录下面来。这个时候我们只需要看看能不能导入就行了。没有任何问题。
我来说两句