导入numpy库有三种方式:
from numpy import #导入numpy所有函数
import numpy #这种方式使用numpy的函数时,需要numpy.开头
import numpy as np #使用numpy函数时需要numpy.开头,最为常见
矩阵的创建-直接定义:
import numpy as np
A=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
arr1=np.array(A) #将列表转为矩阵
print(“A=”,A)
print("通过列表A创建的矩阵arr1\n",arr1)
B=((1,2,3,4),(5,6,7,8),(9,10,11,12))
arr2=np.array(B)
print(“B=”,B)
print("通过元组B创建的矩阵arr2\n",arr2)
矩阵的规模一般用行数和列数描述,可以通过矩阵的shape属性获得,数据类型可以用type函数验证:
#上例A,,B和arr1
print("A的类型:",type(A))
print("arr1的类型:",type(arr1))
print("arr1的大小:",arr1.shape)#3行4列
矩阵创建-间接创建
1,随机生成矩阵元素
机器学习中常会用随机数作为参数,numpy中可以利用np.random.random()函数和np.random.randint()函数分别随机生成矩阵中指定范围的浮点数和整数。
函数np.random.random((d0,d1,…,dn))生成值为[0,1)区间的n为浮点数组,函数np.random.random((d0,d1))创建d0到d1阶矩阵。
函数np.random.randint(low,high=None,dtype=‘T’),返回随机整数,范围为[low,hiigh)。size为数组维度,对于d0*d1阶矩阵设size=[d0,d1]。dtype为数据类型,默认数据类型是没有high时,默认生成随机数的范围是[0,low)。
import numpy as np
arr1=np.random.random((2,3))
print("创建的随机浮点数构成2*3矩阵:\n",arr1)
arr2=np.random.randint(3,30,size=[2,3])
print("创建3~30(不包括30)之间的随机整数构成的2*3阶矩阵:\n",arr2)
reshape()函数通过改变矩阵大小来创建新矩阵,其参数为一个正整数的元组,分别代表行数和列数。
import numpy as np
A=[1,2,3,4,5,6]
B=np.array(A)
C1=B.reshape(2,3)
C2=B.reshape(3,2)
print("矩阵B:\n",B)
print("转换为2行3列的矩阵C1\n",C1)
print("转换为3行2列的矩阵C2\n",C2)
使用reshape函数改变矩阵大小时,新矩阵的元数个数要与原矩阵的元素个数相等。当一个参数为-1时,reshape函数会根据另一个参数计算出-1代表的具体值,上例中C1=B.reshape(2,3)可用C1=B.reshape(-1,3)或C1=B.reshape(2,-1)代替。