Маркировка матрицы с использованием библиотеки Python numpy

Я знаю, что мы можем использовать Pandas для маркировки строк и столбцов матрицы. Но я хочу использовать numpy для маркировки строк и столбцов матрицы.

Позвольте мне определить проблему, используя матрицу. Предположим, я инициализирую матрицу большего размера: 16x16.

import numpy as np
C = np.zeros((16, 16), dtype=int)

Кроме того, у меня есть 2 матрицы небольшого размера: скажем, A и B: обе 8x8

то мне нужно вот это:

C[0:4, 0:4] = A[0:4, 0:4]
C[0:4, 4:8] = A[0:4, 4:8]
C[4:8, 0:4] = A[4:8, 0:4]
C[4:8, 4:8] = A[4:8, 4:8] + B[0:4, 0:4]

что-то вроде этого.. могу ли я сделать ту же операцию с небольшой маркировкой и автоматизацией?


person user14277426    schedule 15.09.2020    source источник
comment
Определите a=slice(0,4), затем C[a,a]=A[a,a] и так далее.   -  person hpaulj    schedule 15.09.2020
comment
Также с aa = (a,a) кортежем, C[aa] = A[aa]   -  person hpaulj    schedule 15.09.2020
comment
Позвольте мне уточнить это немного больше: как и в Pandas, мы можем помечать строки и столбцы, и если мне нужно изменить часть матрицы, я могу это сделать. Могу ли я сделать то же самое, используя библиотеку Numpy, используя метки?   -  person user14277426    schedule 15.09.2020
comment
Нет, numpy не использует такие ярлыки, как pandas. индексы строго позиционны.   -  person hpaulj    schedule 15.09.2020
comment
Вы могли бы получить больше помощи, если бы показали, как pandas маркировка облегчит эту задачу.   -  person hpaulj    schedule 15.09.2020


Ответы (1)


Не слишком ясно, что именно вы ищете, но вы делаете свой код немного более кратким с помощью

C[0:8, 0:8] = A[0:8, 0:8]
C[4:8, 4:8] += B[0:4, 0:4]
person Julien    schedule 15.09.2020