2015-04-24 4 views
0

Я пытаюсь выполнить операции со значениями, которые я добавил в массив.Суммирование конкретных значений в массиве в python

шаг 1:

загружал XLs файл с xlrd библиотеки и создали массив. 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])

Summ весь путь до I (данные [I], [1]) ??

как суммирование всех строк для одной и того же колонка,

я пытался сделать данные сумм [1], но это суммирует все значения для одной и той же строки (как горизонтальная сумма значений ...) и я пытаюсь сделать вертикальную сумму)

ответ

1
>>> data = [[1,2],[3,4],[5,6]] 
>>> sum(data[i][1] for i in range(len(data))) 
12 # 2 + 4 + 6 
>>> 
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) 
0

спасибо, что нашли время. @ C.B У меня возникла синтаксическая ошибка. @StackG, спасибо, что именно то, что я искал. Однако я нашел другой способ сделать это.

импорт xlrd. 'print (sheet.col_values ​​(1, start_rowx = 1, end_rowx = 100))'

Смежные вопросы