创建及访问Array数组


通过python的list创建数组

Numpy学习

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

Numpy学习

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

获取数组的属性

获取数组的大小

Numpy学习

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

获取数组中元素个数

Numpy学习

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

获取数组中的数据类型

Numpy学习

当数组中的元素类型不一样的时候,会取精确度最高的类型
Numpy学习

通过numpy中的arange创建数组

Numpy学习

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

创建全零数组

Numpy学习

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

创建单位数组

Numpy学习

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

访问数组中的元素

访问一维数组

一维数组的访问和python中列表元素访问相同,同样通过索引访问,也包含切片的功能。
Numpy学习

访问二维数组

访问二维数组也是通过索引,第一个索引表示行,第二个索引表示列,且第一行和第一列的索引都是0。
Numpy学习

二维数组切片

Numpy学习

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

数组的运算

创建随机数组和随机数

Numpy学习

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

可以在生成随机数的时候指定一个size,表示生成一个m*n的矩阵或一维数组的长度:
Numpy学习

对于这种一维数组,也可以重新将其生成为二维数组:
Numpy学习

数组加减乘除

数组的加法、减法、乘法和除法就是将矩阵中对应位置元素相加减或乘或除,然后形成一个新的矩阵。
Numpy学习

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

数组的常用函数


unique

这个函数用来去除数组中重复的元素,最后返回一个一维数组。
Numpy学习

sum

返回一个按列求和的一维数组
Numpy学习

也可以指定求某一行或列的和
Numpy学习

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

max和min

max和min用于求数组中的最大值和最小值,用法类似sum
Numpy学习

矩阵创建


mat创建矩阵

创建矩阵使用numpy中的mat方法,它的参数和创建数组的array基本类似:
Numpy学习

数组转换为矩阵

将数组作为参数传递给mat,则转换成对应行列的矩阵
Numpy学习

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

矩阵运算


矩阵加法和减法

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

Numpy学习

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

矩阵的乘法

矩阵的乘法中,A*B,要求A的行数等于B的列数。
Numpy学习

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

使用pickle序列化numpy arrary


使用pickle可以把array保存在磁盘上:
Numpy学习

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

使用pickle.load可以将保存在文件中的数组加载回来:
Numpy学习

使用save/savez序列化numpy arrary


Numpy学习

生成的文件默认后缀为npy

也可以同时序列化两个数组,使用savez:
Numpy学习

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

这种相当于压缩多个数组

相关文章: