矩阵中的python和列

2024-09-27 00:12:16 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的剧本。它应该做的是打开一个矩阵(在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)

Tags: 文件元素错误line矩阵数组openmatrix
3条回答

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

我认为指令l.sum()是错误的。用于对列表求和的函数是sum,必须按以下示例使用:

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

如果你想选择一个给定的列,你可以列表理解:[row[columnID] for row in A]

一个不同的二维数组的和

^{pr2}$

另外,在你的代码中,返回后有一个打印。我认为它永远不会执行;)

您可以使用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

这会给你一些类似的东西:

^{pr2}$

如果没有numpy,您将不得不使用类似于列表理解的东西来检查列表中的“列”来求和。Python的list sum适用于列表,如果1)有一个矩阵,并且2)希望对列进行求和,那么就不会有这样的结果

相关问题 更多 >

    热门问题