Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的数组计算三个数组的点积_Python_Numpy - Fatal编程技术网

python中的数组计算三个数组的点积

python中的数组计算三个数组的点积,python,numpy,Python,Numpy,我是python新手。 如何在python numpy中实现3个数组的点积。 我有三个矩阵 [1 2 3] [4 5 6] [-1 -2 -3] 我想做(1x4x(-1))+(2x5x(-2))+(3x6x(-3))=-4-20-36=-50 In [123]: a=np.array([1, 2, 3]) ...: b=np.array([4, 5, 6]) ...: c=np.array([-1, -2, -3]) 将它们组合成一个阵列: In [124]: arr =

我是python新手。 如何在python numpy中实现3个数组的点积。 我有三个矩阵

[1 2 3]
[4 5 6]
[-1 -2 -3]
我想做(1x4x(-1))+(2x5x(-2))+(3x6x(-3))=-4-20-36=-50

In [123]: a=np.array([1, 2, 3])
     ...: b=np.array([4, 5, 6])
     ...: c=np.array([-1, -2, -3])
将它们组合成一个阵列:

In [124]: arr = np.vstack((a,b,c))
In [125]: arr
Out[125]: 
array([[ 1,  2,  3],
       [ 4,  5,  6],
       [-1, -2, -3]])
从列中取乘积,然后求和

In [127]: np.prod(arr, axis=0)
Out[127]: array([ -4, -20, -54])
In [128]: np.sum(np.prod(arr, axis=0))
Out[128]: -78

另一种方法

np.einsum('i,i,i', a, b, c)

这也是所有产品的总和。

假设您的numpy阵列分别为
a
b
c

>>> (a * b).dot(c)
-78

输出不是-50,这是-78,-4-20-54=-78
>>> (a * b).dot(c)
-78