Numpy学习

创建及访问Array数组


通过python的list创建数组

这里写图片描述

通过列表list_1,使用numpy中的array方法来创建数组。这里创建了一个一维数组。

这里写图片描述

这里给array传入了一个包含两个list的列表作为参数,即表示创建了一个二维数组。

获取数组的属性

获取数组的大小

这里写图片描述

返回的结果(2,4)表示这个数组是一个2*4大小的数组(2行4列)。

获取数组中元素个数

这里写图片描述

返回了数组中一共是8个元素

获取数组中的数据类型

这里写图片描述

当数组中的元素类型不一样的时候,会取精确度最高的类型
这里写图片描述

通过numpy中的arange创建数组

这里写图片描述

arange的参数和python中range的参数类似,这样就创建了一个一维数组。第三个参数表示步进为2。

创建全零数组

这里写图片描述

只传入一个参数表示生成一个一维的全零数组,传入一个两元素列表表示生成一个二维的全零数组

创建单位数组

这里写图片描述

zeros和eye返回的都是float类型的数据。

访问数组中的元素

访问一维数组

一维数组的访问和python中列表元素访问相同,同样通过索引访问,也包含切片的功能。
这里写图片描述

访问二维数组

访问二维数组也是通过索引,第一个索引表示行,第二个索引表示列,且第一行和第一列的索引都是0。
这里写图片描述

二维数组切片

这里写图片描述

切片时第一个参数表示表示行的范围,第二个参数表示列的范围,结果仍为数组。

数组的运算

创建随机数组和随机数

这里写图片描述

randn产生的一位数组是符合正太分布的,randint则产生一个指定参数范围内的随机整形数字。

可以在生成随机数的时候指定一个size,表示生成一个m*n的矩阵或一维数组的长度:
这里写图片描述

对于这种一维数组,也可以重新将其生成为二维数组:
这里写图片描述

数组加减乘除

数组的加法、减法、乘法和除法就是将矩阵中对应位置元素相加减或乘或除,然后形成一个新的矩阵。
这里写图片描述

这里除法的时候有一个警告,因为b中有0存在,而0不能做分母。

数组的常用函数


unique

这个函数用来去除数组中重复的元素,最后返回一个一维数组。
这里写图片描述

sum

返回一个按列求和的一维数组
这里写图片描述

也可以指定求某一行或列的和
这里写图片描述

a[0]表示求第一行的和,a[:,1]表示求第二列的和

max和min

max和min用于求数组中的最大值和最小值,用法类似sum
这里写图片描述

矩阵创建


mat创建矩阵

创建矩阵使用numpy中的mat方法,它的参数和创建数组的array基本类似:
这里写图片描述

数组转换为矩阵

将数组作为参数传递给mat,则转换成对应行列的矩阵
这里写图片描述

这样的话前面创建数组的方法就可以用来较为方便的创建矩阵

矩阵运算


矩阵加法和减法

矩阵的加减法就是对应位置的元素的加减法。

这里写图片描述

这里直接将上边产生的随机数组a和b转化为矩阵。

矩阵的乘法

矩阵的乘法中,A*B,要求A的行数等于B的列数。
这里写图片描述

矩阵的乘法要满足左行乘右列的规则,最后形成了一个4*4的新矩阵

使用pickle序列化numpy arrary


使用pickle可以把array保存在磁盘上:
这里写图片描述

导入pickle模块,创建好数组后打开一个文件,这里打开方式为wb,即“写二进制”的方式,然后通过pickle.dump指定将数组x保存到文件f中。

使用pickle.load可以将保存在文件中的数组加载回来:
这里写图片描述

使用save/savez序列化numpy arrary


这里写图片描述

生成的文件默认后缀为npy

也可以同时序列化两个数组,使用savez:
这里写图片描述

a=x,b=y相当于给两个数组打标签,然后加载保存的文件后可以通过指定标签的方式访问不同的数组。

这种相当于压缩多个数组

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值