Python Numpy矩阵模指数提取

Python Numpy矩阵模指数提取,python,numpy,Python,Numpy,假设我有一个二维矩阵,比如 A = np.mat([[1,2,3,4], [5,6,7,8], [9,10,11,12]]) 如何将列索引模为2的第1行中的所有元素更改为0?即,我想获得 np.mat([[1,2,3,4], [0,6,0,8], [9,10,11,12]]) 我试过了 A[1][np.arange(len(A))%2==0] = 0 这将导致索引器。列索引%2=0表示索引为偶数整数。 您

假设我有一个二维矩阵,比如

A = np.mat([[1,2,3,4], 
            [5,6,7,8],
            [9,10,11,12]])
如何将列索引模为2的第1行中的所有元素更改为0?即,我想获得

np.mat([[1,2,3,4], 
        [0,6,0,8], 
        [9,10,11,12]])
我试过了

A[1][np.arange(len(A))%2==0] = 0

这将导致索引器。

索引%2=0
表示索引为偶数整数。 您可以将偶数列索引处第一行的元素更改为0,如下所示:

A[1, ::2] = 0  # 2 is the step
如果您想将其作为(不正确的)
A[1][np.arange(len(A))%2==0]=0
,则应将其更改为

A[1, np.arange(A.shape[1]) % 2 == 0] = 0

其中
A.shape[1]
是列数(而
len(A)
给出行数)。

A[1,np.arange(A.shape[1])%2==0]=0
?对
np.mat的[]]索引要格外小心。首先看
A[1]
A[1,::2]=0