【问题标题】:Summing specific values within an array in python在python中对数组中的特定值求和
【发布时间】:2015-07-03 14:01:39
【问题描述】:

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

第 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 (data[I][1]) ??

就像对同一列的所有行求和,

我尝试对数据求和[1],但这会将同一行的所有值求和(如值的水平总和......),我正在尝试进行垂直总和)

【问题讨论】:

    标签: python arrays sum range conditional


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:
        >>> data = [[1,2],[3,4],[5,6]]
        >>> sum(data[i][1] for i in range(len(data)))
        12 # 2 + 4 + 6
        >>> 
        

        【讨论】:

          猜你喜欢
          • 2023-04-04
          • 1970-01-01
          • 1970-01-01
          • 2020-06-14
          • 2020-04-08
          • 2021-11-05
          • 1970-01-01
          • 2021-04-16
          相关资源
          最近更新 更多