我如何使用numpy累加器 http://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.ufunc.accumulate.html#numpy.ufunc.accumulate and add http://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.add.html#numpy.add逐列添加数组以制作基本累加器的函数?
import numpy as np
a = np.array([1,1,1])
b = np.array([2,2,2])
c = np.array([3,3,3])
two_dim = np.array([a,b,c])
y = np.array([0,0,0])
for x in two_dim:
y = np.add.accumulate(x,axis=0,out=y)
return y
实际输出:[1,2,3]
期望的输出:[6,6,6]
numpy 术语表说沿轴求和 http://docs.scipy.org/doc/numpy-dev/glossary.html#term-along-an-axis争论axis=1
对行求和:“我们可以对数组的每一行求和,在这种情况下我们沿着列或轴 1 进行操作”。
“二维数组有两个相应的轴:第一个轴垂直向下穿过行(轴 0),第二个轴水平穿过列(轴 1)”
With axis=1
我期望输出[3,6,9]
,但这也会返回[1,2,3]
.
当然!x 和 y 都不是二维的。
我究竟做错了什么?
我可以手动使用np.add()
aa = np.array([1,1,1])
bb = np.array([2,2,2])
cc = np.array([3,3,3])
yy = np.array([0,0,0])
l = np.add(aa,yy)
m = np.add(bb,l)
n = np.add(cc,m)
print n
现在我得到了正确的输出,[6,6,6]