我有一个像这样的numpy数组:
<class 'numpy.ndarray'>
[[-18.29750213 0.1 -0.1 0.4 -0.8 ]
[-18.20350213 0.7 -0.2 0.1 -0.3 ]
[-18.11050213 0.5 -0.6 0.2 -0.1 ]
...,
[ 9.49249787 0.5 -0.6 0.2 -0.2 ]
[ 9.58649787 0.3 -0.3 0.7 -0.8 ]
[ 9.67949787 0.2 -0.6 0.5 -0.1 ]]
我试图为每一行分别添加所有偶数和奇数列,也就是说,最后我希望得到一个像这样的表:
-18.29750213 0.5(i.e. 0.1+0.4) -0.9(i.e. -.1-.8)
-18.20350213 0.8(i.e. 0.7+0.1) -0.5(i.e. -.2-.3)
-18.11050213 0.7(i.e. 0.5+0.2) -0.7(i.e. -.6-.1)
...
虽然我可以将列号分隔为lines[:,::2]
和lines[:,1::2]
我可以添加它们,即sum(lines[:2,::2])
和sum(lines[:,1::2])
现在正在运行:
d_dn = sum(lines[:,::2])
d_up = sum(lines[:,1::2])
print(lines[:,0].size)
print(d_dn.size)
print(d_up.size)
正在给予:
301
10
9
答案 0 :(得分:1)
只需调用np.sum
并传递轴参数即可。之后,column_stack
将这些碎片放在一起。
i = arr[:, [0]]
j = arr[:, 1::2].sum(1)
k = arr[:, 2::2].sum(1)
np.column_stack((i, j, k))
array([[-18.29750213, 0.5 , -0.9 ],
[-18.20350213, 0.8 , -0.5 ],
[-18.11050213, 0.7 , -0.7 ],
[ 9.49249787, 0.7 , -0.8 ],
[ 9.58649787, 1. , -1.1 ],
[ 9.67949787, 0.7 , -0.7 ]])