如何计算两个向量的一部分产品

时间:2017-11-29 22:21:24

标签: python tensorflow

如何计算两个向量的前三个元素的乘积和 在python和tensorflow中A = [a1, a2, a3, a4, a5, a6]B = [b1, b2, b3, b4, b5, b6] (i.e. [a1b1 + a2b2 + a3b3])

3 个答案:

答案 0 :(得分:0)

如果只是那么简单:

sum([A[i]*B[i] for i in range(3)])

这将前三个值的乘积相加。

希望这有帮助!

答案 1 :(得分:0)

import tensorflow as tf

tf.multiply(A, B)

在python中你可以使用numpy

A = numpy.array(A)
B = numpy.array(B)
A*B

答案 2 :(得分:0)

使用内置的Python模块和函数,有很多方法可以做到。

以下列表:

A = [1,2,3,4,5]
B = [4,5,6,7,8]

您可以使用zip函数从两个列表中创建元素对:

prod = list(zip(A,B))
print(prod)

输出:

[(1, 4), (2, 5), (3, 6), (4, 7), (5, 8)]

从那里你可以通过以下方式实现:

1)使用列表理解:

res = sum(a*b for a,b in prod[:3])
print(res)

输出:

32

2)使用map功能:

res = sum(map(lambda i: i[0]*i[1], prod[:3]))
print(res)

输出:

32

3)使用reduce模块中的itertools函数:

from functools import reduce #Need to import only if you're using Python 3
import operator

res = sum(reduce(operator.mul, data) for data in prod[:3])
print(res)

输出:

32