一、矩阵定义、运算
对多维数组的运算,默认情况并不运算矩阵。如果需要对数组进行矩阵运算,矩阵是继承自numpy数组对象的二维数组对象。Numpy中,矩阵计算是针对整个矩阵中每个元素进行的,与用for循环相比,其在运算速度上更快。
#创建numpy矩阵
matr1=np.mat('1 2 3;4 5 6;7 8 9') #使用分号隔开数据
matr2=np.matrix([[1,2,3],[4,5,6],[7,8,9]]) #调用mat和matrix等价
# print(np.bmat('arr1 arr2;arr1 arr2')) #block-matrix实现分块矩阵创建,即小矩阵组合大矩阵
#矩阵运算
print(matr1+matr2) #矩阵相加+、相减-、相乘*
print(matr1.T)
try:
print(matr1.I) #T:返回自身的转置,I:返回自身的逆矩阵
except:
print("无逆矩阵")
print(matr1.H) #H:返回自身的共轭矩阵
print(matr1.A) #A:返回自身的二维数组的一个视图
二、生成随机矩阵
np.random.rand() 是均匀分布。
np.random.randn() 是从标准正态分布中返回一个或多个样本值。正态分布,也即这些随机数的期望为0,方差为1。
#随机矩阵 np.random.rand的应用:dropout矩阵
dl = np.random.rand(4,5) < 0.2 #al.shape[0],al.shape[1] 第一个维度是4,第二个维度是5;keep_prob是0.2(dropout=0.8)
print(dl)
#生成1-100整数范围内的随机矩阵
print(np.random.randint(1,100,size=(3,3)))