首页 > 编程笔记

Numpy数组自身加和与乘积运算

本节介绍数组自身的加乘。自身的加乘是指对数组内部的元素求和及求乘积,比如计算所有行的和,或者计算所有列的和。其方向仍然由 axis 参数设定。示例代码如下。
In [1]: import numpy as np
In [2]: a=np.array([[1,2,3],
   ...:             [4,5,6],
   ...:             [7,8,9]])

1. prod()函数

我们可以按列求乘积,即计算每一列的乘积。比如在 a 数组中,可以分别计算第 0 列、第1列和第 2 列的乘积,只需要调用 prod 方法,然后指定 axis 为 0 即可。可以看到最后的结果是 array([28,80,162]),28 即 1×4×7,80 即 2×5×8,162 即 3×6×9。

当然,还可以计算每一行的乘积,只需指定参数 axis 为 1 即可。

我们还可以指定 axis=None 来计算所有元素的乘积。

In [3]: np.prod(a,axis=0)  # 按列计算乘积
Out[3]: array([ 28,  80, 162])
In [4]: np.prod(a,axis=1)  # 按行计算乘积
Out[4]: array([  6, 120, 504])
In [5]: np.prod(a,axis=None)  # 整体计算乘积
Out[5]: 362880 

2. cumprod()函数

cumprod 方法用来计算累积,可以通过指定 axis 来计算行或列的累积。
In [6]: np.cumprod(a,axis=0)  # 按行计算累积
Out[6]: 
array([[  1,   2,   3],
       [  4,  10,  18],
       [ 28,  80, 162]], dtype=int32)
In [7]: np.cumprod(a,axis=1)  # 按列计算累积
Out[7]: 
array([[  1,   2,   6],
       [  4,  20, 120],
       [  7,  56, 504]], dtype=int32)
In [8]: np.cumprod(a,axis=None)  # 整体计算累积
Out[8]: 
array([     1,      2,      6,     24,    120,    720,   5040,  40320,
       362880], dtype=int32) 

3. sum()函数

sum 函数用来计算元素的和,可以合理利用 axis 方法按行、列和整体分别计算和。
In [9]: np.sum(a,axis=0)  # 按列计算和
Out[9]: array([12, 15, 18])
In [10]: np.sum(a,axis=1)  # 按行计算和
Out[10]: array([ 6, 15, 24])
In [11]: np.sum(a,axis=None)  # 整体计算和
Out[11]: 45 

4. cumsum()函数

类似于 cumprod 计算累积,cumsum 也可以计算累加,当然 axis 参数的指定仍然是其重点。
In [12]: np.cumsum(a,axis=0)  # 按行计算累加
Out[12]: 
array([[ 1,  2,  3],
       [ 5,  7,  9],
       [12, 15, 18]], dtype=int32)
In [13]: np.cumsum(a,axis=1)  # 按列计算累加
Out[13]: 
array([[ 1,  3,  6],
       [ 4,  9, 15],
       [ 7, 15, 24]], dtype=int32)
In [14]: np.cumsum(a,axis=None)  # 整体计算累加
Out[14]: array([ 1,  3,  6, 10, 15, 21, 28, 36, 45], dtype=int32) 

优秀文章