您的位置:首页 > 编程语言 > Python开发

Numpy学习

2018-03-31 18:04 399 查看

创建及访问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相当于给两个数组打标签,然后加载保存的文件后可以通过指定标签的方式访问不同的数组。

这种相当于压缩多个数组
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: