Numpy不允许使用Python的“Sum”函数?

时间:2015-02-18 18:04:52

标签: python numpy matplotlib pyqt

我刚刚安装了Pylab和Matplotlib来创建一个工作正常的图表。然后我去为我的程序打开另一个python文件并注意到一个错误:

    Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\numpy\core\fromnumeric.py", line 1708, in sum
    sum = a.sum
AttributeError: 'list' object has no attribute 'sum'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\JD\git\ComputingCoursework\Coursework\Implementation\Files\AddDataGUI.py", line 768, in <module>
    launcher = AddDataWindow('Hardware')
  File "C:\Users\JD\git\ComputingCoursework\Coursework\Implementation\Files\AddDataGUI.py", line 33, in __init__
    self.col = sum([[i,''] for i in self.col],[])   ## adds a space in between each item in self.col tuple
  File "C:\Python34\lib\site-packages\numpy\core\fromnumeric.py", line 1711, in sum
    out=out, keepdims=keepdims)
  File "C:\Python34\lib\site-packages\numpy\core\_methods.py", line 32, in _sum
    return umr_sum(a, axis, dtype, out, keepdims)
TypeError: cannot perform reduce with flexible type

以下是似乎导致错误的代码

self.col = sum([[i,''] for i in self.col],[])

在安装numpy之前,它已经很好了吗?帮助!

2 个答案:

答案 0 :(得分:1)

您通常可以在以下位置找到原始的sum

__builtin__.sum

答案 1 :(得分:1)

永远不要使用from pylab import *from numpy import *,因为这些导入会使用NumPy的sum函数覆盖sum的内置定义。使用其中一种进口可能是您遇到问题的原因。而是使用import numpy as np,以便您可以明确控制对NumPy函数的访问(例如使用np.sum)。

通常避免使用from module import *的其他原因是它会污染全局命名空间并使得更难跟踪已定义变量的位置。