Матрица Numpy Матрица Извлечение индекса - PullRequest
0 голосов
/ 06 октября 2018

Предположим, у меня есть двумерная матрица A, скажем,

A = np.mat([[1,2,3,4], 
            [5,6,7,8],
            [9,10,11,12]])

. Как мне изменить все элементы в строке 1 с индексом столбца по модулю 2 на 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 голосов
/ 07 октября 2018

Столбец 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) - количество строк).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...