python - 分别对 numpy 数组中的所有偶数列和奇数列求和

标签 python arrays numpy

我有一个像这样的 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

最佳答案

只需调用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       ]])

关于python - 分别对 numpy 数组中的所有偶数列和奇数列求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48400578/

相关文章:

c - 反转字符串的函数将字符串更改为空,而不是反转

python - 如何使用 fmin_ncg 计算成本和 theta

具有常量的 Python 矢量化

java - Jython PyList 映射到 List<String> 以及其他 Jython 到 Java 变量映射

python - 如何提高 pandas GroupBy 过滤操作的性能?

python - 有条件地将两个字符串组合成一个新列的优雅方式

python - 如何获得同一天的两个条目之间的差异?

java - 打印出带有 * 的图表

java - 从二维数组中删除元素

python - 根据规则替换多维numpy数组的元素