Заменить вспомогательную часть матрицы на другую маленькую матрицу в numpy

Я новичок в Numpy и хочу заменить часть матрицы. Например, у меня есть две матрицы: A, B, генерируемые numpy

In [333]: A = ones((5,5)) In [334]: A Out[334]: array([[ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.]]) In [335]: B Out[335]: array([[ 0.1, 0.2], [ 0.3, 0.4]]) 

В конце концов, я хочу сделать A следующей матрицей.

 In [336]: A Out[336]: array([[ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 0.1, 0.2], [ 1., 1., 1., 0.3, 0.4]]) 

и / или следующие

 In [336]: A Out[336]: array([[ 1., 1., 1., 0.1, 0.2], [ 1., 1., 1., 0.3, 0.4], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.]]) 

Я пробовал следовать, но это не сработало. Я не знаю сейчас 🙁

 A[[0,1],:][:,[3,4]] = B 

или даже я пробовал как

 A[[0,1],:][:,[3,4]] = 1 

чтобы проверить, изменены ли четыре ячейки или нет. Есть ли у вас какие-либо идеи?

  • Почему «True == not False» является синтаксической ошибкой в ​​Python?
  • Выделение непревзойденных скобок в vim
  • Команда «collectstatic» не работает, когда WhiteNoise включен
  • Необходимые виджеты для отображения 1D консольного приложения
  • Ошибка при установке lxml через pip: требуется Microsoft Visual C ++ 14.0
  • Пользовательские заголовки с pycurl
  • Как генерировать кортежи (оригинальная метка, предсказанная метка) на Spark с MLlib?
  • Есть ли причины не смешивать модуль Multiprocessing и Threading в Python
  • 2 Solutions collect form web for “Заменить вспомогательную часть матрицы на другую маленькую матрицу в numpy”

    Вот как вы можете это сделать:

     >>> A[3:5, 3:5] = B >>> A array([[ 1. , 1. , 1. , 1. , 1. ], [ 1. , 1. , 1. , 1. , 1. ], [ 1. , 1. , 1. , 1. , 1. ], [ 1. , 1. , 1. , 0.1, 0.2], [ 1. , 1. , 1. , 0.3, 0.4]]) 

    Для первого:

     In [13]: A[-B.shape[0]:, -B.shape[1]:] = B In [14]: A Out[14]: array([[ 1. , 1. , 1. , 1. , 1. ], [ 1. , 1. , 1. , 1. , 1. ], [ 1. , 1. , 1. , 1. , 1. ], [ 1. , 1. , 1. , 0.1, 0.2], [ 1. , 1. , 1. , 0.3, 0.4]]) 

    Второе:

     In [15]: A = np.ones((5,5)) In [16]: A[:B.shape[0], -B.shape[1]:] = B In [17]: A Out[17]: array([[ 1. , 1. , 1. , 0.1, 0.2], [ 1. , 1. , 1. , 0.3, 0.4], [ 1. , 1. , 1. , 1. , 1. ], [ 1. , 1. , 1. , 1. , 1. ], [ 1. , 1. , 1. , 1. , 1. ]]) 
    Python - лучший язык программирования в мире.