注意:两个(1,3)或(3,1)的矩阵不能直接使用np.dot(),可以使用np.dot()有两种情况,一种是都是一维数组,另外一种是满足矩阵相乘的运算,因为他们不是一维数(3,),所以不能运算.
#使用1
a = np.array([1,2,3])
np.dot(a,a)# 14
#使用二
b = a.reshape(1,3)
c = a.reshape(3,1)
np.dot(b,c)
#Out[11]: array([[14]])
对于上述求得的可以通过np.squeeze()可以将二维数组转化为一维数组
d = np.squeeze(np.dot(b,c)) #array(14)
而对于刚才的两个(1,3)的数组,我们如果想求他们对应元素相乘的和,可以先使用np.squeeze()压缩为一维数组再使用np.dot
b = np.squeeze(b)# array([1, 2, 3])
np.dot(b,b) # 14
或者直接使用np.multiply()使他们元素相乘(也可以使用*),再求和。
b = a.reshape(1,3)
c = np.multiply(b,b) #array([[1, 4, 9]])
注意:在使用如下语句时,后面不应该再添加a=-2,会报错。
a=1
a=2 if a>0 else -2
未完待续…