Python 给定行中固定列的numpy和

Python 给定行中固定列的numpy和,python,numpy,Python,Numpy,比如说,我有这样一个numpy数组: [[ 1 2 3 5] [ 4 5 6 8] [ 7 8 9 11]] 我想得到每一行的(col0+col2)和(col1+col3)之和。 我知道这可能是最基本的,但我无法理解。请帮忙这应该可以做到: import numpy as np mat=np.arange(12).reshape(3,4) A=np.sum(mat,axis=0)[0::2] B=np.sum(mat,axis=0)[1::2] A=(第0列+第2列) B=(col1+

比如说,我有这样一个numpy数组:

[[ 1 2 3 5]
 [ 4 5 6 8]
 [ 7 8 9 11]]
我想得到每一行的(col0+col2)和(col1+col3)之和。
我知道这可能是最基本的,但我无法理解。请帮忙

这应该可以做到:

import numpy as np
mat=np.arange(12).reshape(3,4)
A=np.sum(mat,axis=0)[0::2] 
B=np.sum(mat,axis=0)[1::2]
A=(第0列+第2列)

B=(col1+col3)

这应该可以做到:

import numpy as np
mat=np.arange(12).reshape(3,4)
A=np.sum(mat,axis=0)[0::2] 
B=np.sum(mat,axis=0)[1::2]
A=(第0列+第2列)

B=(col1+col3)

是的,一旦你知道numpy数组的赋值方案,它是非常基本的:


是的,一旦你知道numpy数组的赋值方案,它是非常基本的:

设置

Out[99]: 
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
解决方案

#reshape the array to 2 columns, then sum columns, finally reshape it back to 2 columns.
a.reshape(-1,2).sum(1).reshape(-1,2)
Out[102]: 
array([[ 1,  5],
       [ 9, 13],
       [17, 21]])
设置

Out[99]: 
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
解决方案

#reshape the array to 2 columns, then sum columns, finally reshape it back to 2 columns.
a.reshape(-1,2).sum(1).reshape(-1,2)
Out[102]: 
array([[ 1,  5],
       [ 9, 13],
       [17, 21]])

注意,我使用了变量mat,它与矩阵不同。用矩阵的变量替换第3行和第4行中的mat。注意,我使用了变量mat,它与矩阵不同。用矩阵的变量替换第3行和第4行中的mat。