Python/Numpy 中乘两个向量每个元素的操作叫什么/怎么表示?
比如,我有:
x = array([1, 2, 3])
y = array([4, 5, 6])
在Python中,标准的“数组相乘”是用 z = x * y = array([4, 10, 18])
这样的方式来做的。而在Matlab中,要实现同样的效果,你需要用 *。如果我没记错的话。
这个操作叫什么?用什么符号来表示呢?
4 个回答
1
看起来你想要的表达式是 S = sum_i( x_i * y_i)?这个叫做内积。从numpy的文档来看:
from numpy import *
x = array([1,2,3])
y = array([2,2,2])
inner(x,y) <-- Should give 1*2 + 2*2 + 3*2 = 12
你提到的这个操作,以及在matlab中用 .* 得到的结果,叫做Schur/Hadamard积,通常用一个小圆圈作为符号。因为在numpy中,正常的 '*' 操作符得到的就是这个结果,所以我怀疑没有单独的Schur函数。
6
这是一个叫做哈达玛积的运算,用一个空心圆圈来表示:http://en.wikipedia.org/wiki/Matrix_multiplication#Hadamard_product