这是我的剧本。它应该做的是打开一个矩阵(在matrix文件中,将所有的元素加在一起,并将每列中的所有元素相加(最后我将得到一个1xN数组)。我得到的是一个错误:AttributeError:“list”对象没有属性“sum”。你能告诉我一些关于这件事的看法吗?在
def collapse_probtrack_results(waytotal_file, matrix_file):
with open(waytotal_file) as f:
waytotal = int(f.read())
f = open(wayfile_template + roi + "/matrix_seeds_to_all_targets")
l = [map(int, line.split(',')) for line in f if line.strip() != ""]
collapsed = l.sum(axis=0) / waytotal * 100.
return collapsed
print (collapsed)
正如消息所说:列表没有名为
sum
的方法。目前还不清楚你在这条线上到底想做什么,所以没什么比这更有帮助的了。在我认为指令
l.sum()
是错误的。用于对列表求和的函数是sum
,必须按以下示例使用:如果你想选择一个给定的列,你可以列表理解:
[row[columnID] for row in A]
一个不同的二维数组的和
^{pr2}$另外,在你的代码中,返回后有一个打印。我认为它永远不会执行;)
您可以使用numpy,而不是尝试对列表求和:
这会给你一些类似的东西:
^{pr2}$如果没有numpy,您将不得不使用类似于列表理解的东西来检查列表中的“列”来求和。Python的list sum适用于列表,如果1)有一个矩阵,并且2)希望对列进行求和,那么就不会有这样的结果
相关问题 更多 >
编程相关推荐