块状矩阵模指数提取

时间:2018-10-06 12:00:11

标签: python numpy

假设我有一个二维矩阵A

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

这会导致IndexError。

1 个答案:

答案 0 :(得分:0)

index % 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)是行数)。