Python函数:np.dot()

Python基本函数:np.dot()

        常用于矩阵乘法计算,以下用法分为两种情况来介绍!
格式:np.dot(a,b)、np.dot(a,b.T)
注意:文中用到了arange、dot、reshape函数、转置(.T)以及翻转。

一、用法

1、如果处理的是一维数组,则得到的是两数组的內积(相应的元素相乘)

In :       	d = np.arange(0,5)
Out:      	array([0, 1, 2, 3, 4])      	#得到一个数组[0, 1, 2, 3, 4]

In :       	e = d[::-1]                     #将d翻转排列
Out: 		array([4, 3, 2, 1, 0])
 
In : 		np.dot(d,e) 
Out: 		10                          	# 10 = 0*4 + 1*3 + 2*2 + 3*1 + 4*0

2、如果是二维矩阵之间的运算,则得到的是矩阵积。

  Example one:

In : 		a = np.arange(1,5).reshape(2,2)
Out:		array ([[1, 2],
       				[3, 4]])   				#得到一个2*2的四元素(1~4)方阵
 
In : 		b = np.arange(5,9).reshape(2,2)
Out: 		array ([[5, 6],
            		[7, 8]])            	#得到一个2*2的四元素(5~8)方阵
 
In : 		np.dot(a,b)						#将a和b进行正常矩阵相乘,而不是元素相乘
Out:		array ([[19, 22],               #例如  19 = 1 * 5 + 2 * 7
       				[43, 50]])

  Example two:

In : 		a = np.arange(1,5).reshape(2,2)
Out:		array ([[1, 2],
       				[3, 4]])   				#得到一个2*2的四元素(1~4)方阵
 
In : 		b = np.arange(5,9).reshape(2,2)
Out: 		array ([[5, 6],
            		[7, 8]])            	#得到一个2*2的四元素(5~8)方阵
 
In : 		np.dot(a,b.T)					#将a和b的转置进行正常矩阵相乘,而不是元素相乘
Out:		array ([[17, 23],               #例如  17 = 1 * 5 + 2 * 6
       				[39, 53]])

二、注意事项

1、 np.dot(a,b) a.dot(b) 效果相同。因为dot除了可以numpy库调用,还可以由数组实例对象进行调用。
2、由线性代数可知 np.dot(a,b) np.dot(b,a) 得到的结果可能不一样。

发布了36 篇原创文章 · 获赞 5 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_40520596/article/details/101217203