在python中对数组中的特定值求和

时间:2015-04-24 20:00:07

标签: python arrays sum range conditional

我正在尝试使用已添加到数组中的值进行操作。

第1步:

使用xlrd库加载xls文件并创建一个数组。 http://i.imgur.com/Ig6Lz3L.png

这是代码。

import xlrd

datafile = "data.xls"
workbook = xlrd.open_workbook(datafile)
sheet = workbook.sheet_by_index(0)

data = [[sheet.cell_value(r, col) 
            for col in range(sheet.ncols)] 
                for r in range(sheet.nrows)]

我想对列中的所有值求和    print (data[1][1]) print (data[2][1]) print (data[3][1]) print (data[4][1]) print (data[5][1])

总结到I(数据[I] [1])??

就像汇总同一列的所有行一样,

我试图做和数据[1],但这总和了同一行的所有值(就像值的水平和...),我试图做一个垂直的总和)

3 个答案:

答案 0 :(得分:1)

>>> data = [[1,2],[3,4],[5,6]]
>>> sum(data[i][1] for i in range(len(data)))
12 # 2 + 4 + 6
>>> 

答案 1 :(得分:0)

你可以使用numpy的np.sum()沿着矩阵的轴或者向下求和,产生一个和的向量,如下所示:

>>> import numpy as np
>>> data = [ [1,2],[3,4],[5,6] ]

>>> np.sum(data,0)

array([ 9, 12]) # Summing down the matrix (axis 0)

>>> np.sum(data,1)

array([ 3,  7, 11]) # Summing along the matrix (axis 1)

答案 2 :(得分:0)

感谢您抽出宝贵时间。 @ C.B 我遇到了语法错误。 @StackG,谢谢,这正是我想要的。 但是,我找到了另一种方法。

导入xlrd。 'print(sheet.col_values(1,start_rowx = 1,end_rowx = 100))'