Как назначить все ненулевые элементы в каждом столбце numpy значению в массиве, размер которого равен числу столбцов? - PullRequest
1 голос
/ 22 апреля 2020

Так что это немного глоток. Но вот что я хочу сделать:

b = np.array([7,8,2,3])

a = np.array([[1, 1, 0, 1],
              [0, 0, 1, 1],
              [0, 1, 1, 0]])

*** The Magic Happens ***

array([[7, 8, 0, 3],
       [0, 0, 2, 3],
       [0, 8, 2, 0]])

1 Ответ

1 голос
/ 22 апреля 2020

Я не думаю, что есть более быстрый / аккуратный ответ на это. Писать для других, чтобы найти это полезным. Как упоминалось в комментариях @Mark, вы можете найти ненулевые элементы на a>0, и умножив их на b, вы получите b в a форму, повторяя строки и умножая по элементам:

output = (a > 0) * b

Другой способ будет:

a[a>0] = np.tile(b,(a.shape[0],1))[a>0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...