学习笔记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维数组,广播功能,用来整合的工具包,和一些数学函数工具

第⼀部分 基本操作

第⼀节 数组创建

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

我们可以利⽤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(浮点型)

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

①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的随机数字的数组,并输出其维度

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

=将上面数组形状输出

=输出其元素总数

=输出其数据类型

第三节 ⽂件IO操作

1.3.1 保存数组

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

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

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

=读取npy和npz文件

=读写csv,txt文件

第⼆部分 数据类型

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

==dtype处理数据格式

=创建array并转变为浮点型

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

第三部分 数组运算

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

=逻辑运算

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

第四部分 复制和视图

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

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

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

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

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

第⼀节 基本索引和切⽚

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

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

=输出5到8

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

第六部分 形状操作

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

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

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

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

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

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

第七部分 ⼴播机制

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

⼀维数组⼴播

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

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

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

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

三维数组⼴播3

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

第⼋部分 通⽤函数

第⼀节 通⽤函数:元素级数字函数

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

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

第⼆节 where函数

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

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

第三节 排序⽅法

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

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

第四节 集合运算函数

第五节 数学和统计函数

第九部分 线性代数

矩阵乘积

矩阵其他计算

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352

推荐阅读更多精彩内容