numpy数组的总和,哪种方法更好用?

时间:2017-01-15 14:39:21

标签: python numpy

以下3种方法有哪些区别,哪种方法更适合使用?

import numpy as np

a = np.array([1, 2])
b = np.array([2, 1])

sum(a*b) # mtd 1
(a*b).sum() # mtd 2
np.sum(a*b) # mtd 3

1 个答案:

答案 0 :(得分:2)

最好的是np.dot(a, b),这意味着您正在执行的操作:将a的条目乘以b的条目,然后将它们相加。

至于np.sum(array) vs array.sum(),这两种表达同一事物的方式,两种形式都是为方便起见而提供的。

正如ajcr所说,sum(a*b)不是最理想的,因为它是一个简单的Python方法,而不是NumPy方法。 Python sum必须处理Python列表中存在的各种事物。 NumPy数组是同构的,包含相同类型的对象,因此它的方法利用了这一点。