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