矩阵中的python sum列

时间:2016-03-04 21:30:15

标签: python matrix sum

这里有一段我​​的剧本。这应该做的是打开一个矩阵(在文件matrix_seeds_to_all_targets中)并汇总每列中的所有元素(最后我应该得到一个1xN数组)。我得到的是一个错误:AttributeError:' list'对象没有属性' sum'。能否请您对此有任何见解?

self.navigationItem.titleView = titleButton;

3 个答案:

答案 0 :(得分:0)

正如消息所示:列表没有名为sum的方法。目前尚不清楚你在这条线上想做什么,所以不能比那更有帮助。

答案 1 :(得分:0)

您可以使用numpy而不是尝试对列表求和:

import numpy as np

matrix = np.random.randint(0, 100, (3, 6)) //read in your matrix file here

newMatrix = np.sum(matrix, axis=0)

print newMatrix

会给你类似的东西:

[168  51  23 115 208  54]

如果没有numpy,你将不得不使用像列表理解这样的东西来浏览"列"在你的列表中总结它们。 Python的列表总和适用于列表,如果你有1)矩阵和2)想要对列进行求和,那么它不是你所拥有的

答案 2 :(得分:0)

我认为指令l.sum()是错误的。用于对列表求和的函数是sum,必须像在此示例中一样使用:

myList = [1, 2, 3]
sum(myList) # will return 6
myList.sum() # will throw an error

如果要选择给定列,可以使用列表推导:[row[columnID] for row in A]

因此,例如,该代码将对名为l的2D数组的不同行求和。

numCols = len(l[0])
result = []
for i in range(numCols)
    result.append(sum([row[i] for row in l]))

print(result)

在您的代码中似乎还有一个返回后的打印件。我认为它永远不会执行;)