you can do this in two simple steps using NumPy:
>>> # multiply column 2 of the 2D array, A, by 5.2
>>> A[:,1] *= 5.2
>>> # assuming by 'cumulative sum' you meant the 'reduced' sum:
>>> A[:,1].sum()
>>> # if in fact you want the cumulative sum (ie, returns a new column)
>>> # then do this for the second step instead:
>>> NP.cumsum(A[:,1])
с некоторыми ложными данными:
>>> A = NP.random.rand(8, 5)
>>> A
array([[ 0.893, 0.824, 0.438, 0.284, 0.892],
[ 0.534, 0.11 , 0.409, 0.555, 0.96 ],
[ 0.671, 0.817, 0.636, 0.522, 0.867],
[ 0.752, 0.688, 0.142, 0.793, 0.716],
[ 0.276, 0.818, 0.904, 0.767, 0.443],
[ 0.57 , 0.159, 0.144, 0.439, 0.747],
[ 0.705, 0.793, 0.575, 0.507, 0.956],
[ 0.322, 0.713, 0.963, 0.037, 0.509]])
>>> A[:,1] *= 5.2
>>> A
array([[ 0.893, 4.287, 0.438, 0.284, 0.892],
[ 0.534, 0.571, 0.409, 0.555, 0.96 ],
[ 0.671, 4.25 , 0.636, 0.522, 0.867],
[ 0.752, 3.576, 0.142, 0.793, 0.716],
[ 0.276, 4.255, 0.904, 0.767, 0.443],
[ 0.57 , 0.827, 0.144, 0.439, 0.747],
[ 0.705, 4.122, 0.575, 0.507, 0.956],
[ 0.322, 3.71 , 0.963, 0.037, 0.509]])
>>> A[:,1].sum()
25.596156138451427
Требуется всего несколько простых правил для выбора элемента (индексации) в NumPy:
NumPy, как и Python, основывается на 0, поэтому, например, «1» ниже относится ко второму столбцу
запятые разделяют размеры внутри скобок, поэтому [строки, столбцы], например, A [2,3] означает элемент («ячейка») в третьей строке, четвертый столбец
двоеточие означает все изэлементы вдоль этого измерения, например, A [:, 1] создают представление столбца 2 A;[3 ,:] относится к четвертому ряду