Объединить с трансляцией - PullRequest
0 голосов
/ 29 мая 2019

Рассмотрим следующие массивы:

a = np.array([0,1])[:,None]
b = np.array([1,2,3])

print(a)
array([[0],
       [1]])

print(b)
b = np.array([1,2,3])

Есть ли простой способ объединить эти два массива так, чтобы последний транслировался, чтобы получить следующее?

array([[0, 1, 2, 3],
       [1, 1, 2, 3]])

Я видел, что этот закрытый вопрос со связанным вопросом.Предлагается альтернатива, включающая np.broadcast_arrays, однако мне не удается адаптировать ее к моему примеру.Есть ли способ сделать это, кроме решения np.tile / np.concatenate?

1 Ответ

2 голосов
/ 29 мая 2019

Вы можете сделать это следующим образом

import numpy as np
a = np.array([0,1])[:,None]
b = np.array([1,2,3])
b_new = np.broadcast_to(b,(a.shape[0],b.shape[0]))
c = np.concatenate((a,b_new),axis=1)
print(c)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...