Замена элементов в массиве из индексного массива - PullRequest
0 голосов
/ 26 мая 2019

У меня есть два двумерных массива, например:

A=array[[4,5,6],
        [0,7,8],
        [0,9,0]]

B = array[[11,12,13],
          [14,15,16],
          [17,18,19]]

В массиве A, где значение элемента равно 0, я хочу заменить это же значение в массиве B на 0, сохранить измененную матрицу в новой переменной и сохранитьстарая матрица B.

Заранее спасибо.

1 Ответ

4 голосов
/ 26 мая 2019
import numpy as np
A=np.array([[4,5,6],
    [0,7,8],
    [0,9,0]])

B =np.array([[11,12,13],
      [14,15,16],
      [17,18,19]])
C = B.copy()
B[A == 0] = 0
C, B = B, C

Строка B [A == 0] в основном сначала получает все значения, где массив A равен 0, по строке A == 0.Он возвращает логический массив со значением true в позиции, где значение равно нулю в массиве A. Затем этот логический массив используется для маскирования массива B и присваивает 0 индексам, логические значения равны True.

...