我正在寻找一种用 numpy 实现这段 python 代码的方法:
N = np.arange(5)
for i in range(5):
for k in range(i):
N[i] += N[k]
假设我实际上在大型二维数组 (1300*1300) 上工作。
np.cumsum()
提供一个好方法,在一个轴N[0][i]
或上N[i][0]
,除了它只对原始数组的值求和,而不是对进化数组的值求和。
我想不出办法做到这一点。任何想法 ?
@编辑 :
为了清楚起见:
使用一维数组,循环给出
Out[89]: array([ 0, 1, 3, 7, 15])
与 cumsum :
array([ 0, 1, 3, 6, 10])
使用二维,它会给出类似的东西:
N = np.arange(25).reshape(5,5)
for i in range(len(N)):
N = np.cumsum(N, axis=i)