Python numpy数组的求和,哪种方法更好?

Python numpy数组的求和,哪种方法更好?,python,numpy,Python,Numpy,以下三种方法之间有什么区别?哪种方法更适合使用 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 最好的方法是np.dot(a,b),它正好用于您正在执行的操作:将a的条目乘以b的条目,然后将它们相加 至于np.sum(array)vsarray.sum(),这是表达同一事物的两种方式,为了方便起见提供了两

以下三种方法之间有什么区别?哪种方法更适合使用

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

最好的方法是
np.dot(a,b)
,它正好用于您正在执行的操作:将a的条目乘以b的条目,然后将它们相加

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


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

方法2和3是等效的。不要使用方法1-未针对NumPy阵列优化内置的
sum