Python神坑:sum和numpy.sum

  同样的一段代码,在两个python文件里面执行的结果不一样,一个是按照列单位进行sum一个是所有元素进行sum;

1 def distCal(vecA, vecB):
2     return sqrt(sum(power(vecA - vecB, 2)))
3 
4 from numpy import sum
5 arr1= mat(array([[9, 10], [11,12],[13,14]]))
6 arr2 = mat(array([[1,2], [3,4], [5,6]]))
7 dist = distCal(arr1, arr2)
  搞了半天,最后想到了,是不是可能sum语义不同,python原生和numpy的两个?一查,果然sum分两种;
  在第一个类文件里面(第二个类文件有一句: from numpy import *)添加from numpy import sum,一执行,结果一样,都是对于所有数据进行算合计。
 
  python里面这类情况很多,numpy里面封装了很多python原生同名的操作,但是增加了很多处理,默认行为也和原生的不一致;所以使用的时候要小心。
原文地址:https://www.cnblogs.com/xiashiwendao/p/10507090.html