当前位置: 首页>后端>正文

学习笔记40 python的numpy科学计算库 4-05

==此篇章为工具代码部分的学习,读者有心请务必自己不看答案在草稿纸上写一写,这是我第一次复习的注释,今后的我也请记住。

NumPy(Numerical Python)是Python的?种开源的数值计算扩展。提供多维数组对象,各种派?对象(如掩码数组和矩阵),这种?具可?来存储和处理?型矩阵,?Python?身的嵌套列表(nested list structure)结构要?效的多(该结构也可以?来表示矩阵(matrix)),?持?量的维度数组与矩阵运算,此外也针对数组运算提供?量的数学函数库,包括数学、逻辑、形状操作、排序、选择、输?输出、离散傅?叶变换、基本线性代数,基本统计运算和随机模拟等等。

==提供多维数组对象,意味着可以储存和处理大型的矩阵,这个比python自带的list要高效很多。并且还针对数组计算给出大量的数学函数库。

==这里也是随口提一下list和numpy的区别哈,前者内部可以装多种数据类型,后者只可以一种。

?乎所有从事Python?作的数据分析师都利?NumPy的强?功能。

强?的N维数组;成熟的?播功能;?于整合C/C++和Fortran代码的?具包;NumPy提供了全?的数学功能、随机数?成器和线性代数功能

==强在四个能力,N维数组,广播功能,用来整合的工具包,和一些数学函数工具

第?部分 基本操作

第?节 数组创建

学习笔记40 python的numpy科学计算库 4-05,第1张

创建数组的最简单的?法就是使?array函数,将Python下的list转换为ndarray。

学习笔记40 python的numpy科学计算库 4-05,第2张

我们可以利?np中的?些内置函数来创建数组,?如我们创建全0的数组,也可以创建全1数组,全是其他数字的数组,或者等差数列数组,正态分布数组,随机数。

=不着急,一个一个来

1-创建全是0的数组,创建全是1的数组。假定大小是10个

2-创建一个两行3列的,值为2.718的数组

3-创建一个从0开始到20,步长为2的数组

4-创建一个0到9的10个数字,他们之间间隔是均匀的

5-创建一个0到100的随机数组,个数为10(整数)

6-创建一个正态分布的数组,个数为5

7-创建一个随机分布数组,个数为10(浮点型)

学习笔记40 python的numpy科学计算库 4-05,第3张

==第一次复习存在的问题:

①zero那里没有加上s

②包含赋值的数组创建中,使用np.full函数,并且维度用中括号扩起,用fill_value来取值

③包含起始位置和间隔参数的数组创建使用np.arange()注意是一个r

④相等间隔的函数时linspace

⑤随机创建的函数的前缀是np.random.如果是随机整数,则是np.random.randint;随机浮点数是np.random.random;正态分布则是np.random.randn

第?节 查看操作

NumPy的数组类称为ndarray,也被称为别名 array。请注意,numpy.array这与标准Python库类不同。array.array,后者仅处理?维数组且功能较少。ndarray对象的重要属性是

1.2.1 数组的轴数、维度

=创建一个三维的0-100的随机数字的数组,并输出其维度

学习笔记40 python的numpy科学计算库 4-05,第4张

==这里默认这是一个整数型,维度用size来控制,维度输出用ndim

=将上面数组形状输出

学习笔记40 python的numpy科学计算库 4-05,第5张

=输出其元素总数

学习笔记40 python的numpy科学计算库 4-05,第6张

=输出其数据类型

学习笔记40 python的numpy科学计算库 4-05,第7张

第三节 ?件IO操作

1.3.1 保存数组

=用save方法将ndarray保存到npy文件,用savez方法将多个array保存到一个npz文件

学习笔记40 python的numpy科学计算库 4-05,第8张

==这里注意save用来存一个,savez用来存多个,还有就是内部参数

利用load方法来读取储存的数组,如果是npz文件的话,读取之后相当于形成了?个key-value类型的变量,通过保存时定义的key来获取相应的array

=读取npy和npz文件

学习笔记40 python的numpy科学计算库 4-05,第9张

=读写csv,txt文件

学习笔记40 python的numpy科学计算库 4-05,第10张

第?部分 数据类型

=array创建时,指定类型为浮点型

学习笔记40 python的numpy科学计算库 4-05,第11张

==dtype处理数据格式

=创建array并转变为浮点型

学习笔记40 python的numpy科学计算库 4-05,第12张

=第三个数据类型转化方式

学习笔记40 python的numpy科学计算库 4-05,第13张

第三部分 数组运算

=创建两个数组,并完成加减乘除幂运算

学习笔记40 python的numpy科学计算库 4-05,第14张

=逻辑运算

学习笔记40 python的numpy科学计算库 4-05,第15张

=加减乘运算,并且只会修改现有数组,不创建新数组

学习笔记40 python的numpy科学计算库 4-05,第16张

第四部分 复制和视图

在操作数组时,有时会将其数据复制到新数组中,有时不复制。

==查看或浅拷贝,不同的数组对象可以共享同一个数据。

学习笔记40 python的numpy科学计算库 4-05,第17张

=深拷贝,创建后两者相互独立

学习笔记40 python的numpy科学计算库 4-05,第18张

=创建一个e的8次方大小的数组,然后在其中每隔100万个选一个数据,然后删除a,减小内存消耗。

学习笔记40 python的numpy科学计算库 4-05,第19张

第五部分 索引、切?和迭代

第?节 基本索引和切?

numpy中数组切?是原始数组的视图,这意味着数据不会被复制,视图上任何数据的修改都会反映到原数组上

=创建一个长度为10的任意数组,输出第5个数字

=输出5到8

=输出2开始,步长为2;倒着输出;倒着输出每两个取一个

学习笔记40 python的numpy科学计算库 4-05,第20张

第六部分 形状操作

=数组变形,创建一个维度为3,4,5的数组,并将其转化为12,5;然后再将其自动转化为?,5的数组。

学习笔记40 python的numpy科学计算库 4-05,第21张

==reshape函数,使用-1可以自动整形

=数组转置,二维与高维转置方式不同,请分别举例

学习笔记40 python的numpy科学计算库 4-05,第22张

==这里注意数组生成的格式,然后是高维数组转置的方法

=数组堆叠,创建两个一维数组,并将其串联(分别按行和按列)

学习笔记40 python的numpy科学计算库 4-05,第23张

=创建一个2维数组,从不同维度,用不同断点来拆分。

学习笔记40 python的numpy科学计算库 4-05,第24张

第七部分 ?播机制

当两个数组的形状并不相同的时候,我们可以通过扩展数组的?法来实现相加、相减、相乘等操作,这种机制叫做?播(broadcasting)

?维数组?播

学习笔记40 python的numpy科学计算库 4-05,第25张

==创建上述数组,并实现广播操作

学习笔记40 python的numpy科学计算库 4-05,第26张

==这里的第一个难点还是这个数组的创建

学习笔记40 python的numpy科学计算库 4-05,第27张

==创建上述数组,并实现广播操作

学习笔记40 python的numpy科学计算库 4-05,第28张

==这里不难看出行信息的创建是array[1,2,3],列的创建就是array[[1],[2],[3]]

三维数组?播3

学习笔记40 python的numpy科学计算库 4-05,第29张

==创建上述数组,并实现广播操作

学习笔记40 python的numpy科学计算库 4-05,第30张
学习笔记40 python的numpy科学计算库 4-05,第31张

第?部分 通?函数

第?节 通?函数:元素级数字函数

abs、sqrt、square、exp、log、sin、cos、tan,maxinmum、minimum、all、any、inner、clip、round、trace、ceil、floor

这里指一些通用函数,例如绝对值,开平方之类的,再numpy中可以轻松的直接引用。

第?节 where函数

where 函数,三个参数,条件为真时选择值的数组,条件为假时选择值的数组

==这个函数的应用老实说有点像if,里面3个参数,第一个是条件,第二个是成立时返回的值,第三个是不成立时返回的值。

学习笔记40 python的numpy科学计算库 4-05,第32张

第三节 排序?法

np中还提供了排序?法,排序?法是就地排序,即直接改变原数组

arr.sort()、np.sort()、arr.argsort()

学习笔记40 python的numpy科学计算库 4-05,第33张

第四节 集合运算函数

学习笔记40 python的numpy科学计算库 4-05,第34张

第五节 数学和统计函数

学习笔记40 python的numpy科学计算库 4-05,第35张

第九部分 线性代数

矩阵乘积

学习笔记40 python的numpy科学计算库 4-05,第36张

矩阵其他计算

下?可以计算矩阵的逆、?列式、特征值和特征向量、qr分解值,svd分解值

学习笔记40 python的numpy科学计算库 4-05,第37张

第?部分 实战-?NumPy分析鸢尾花花萼属性各项指标

案列:读取iris数据集中的花萼?度数据(已保存为csv格式)

并对其进?排序、去重,并求出和、累积和、均值、标准差、?差、最?值、最?值。

学习笔记40 python的numpy科学计算库 4-05,第38张

https://www.xamrdz.com/backend/3db1874773.html

相关文章: