Вот один из способов. Я предполагаю, что это эффективно, потому что это векторизация. Он основан на том факте, что при умножении матриц предварительное умножение строки на столбец (1, 1) приведет к получению двух сложенных копий строки.
import numpy as np
a = np.array([
[1, 2, 3],
[2, 3, 4]
])
b = np.array([[8,9]])
np.concatenate([a, np.array([[1],[1]]).dot(b)], axis=1)
Out: array([[1, 2, 3, 8, 9],
[2, 3, 4, 8, 9]])
Обратите внимание, что b
указано немного по-другому (как двумерный массив).
Есть ли способ создать много копий b?
Окончательный результат содержит эти копии (а числовые массивы буквально являются массивами значений в памяти), поэтому я не вижу, как это сделать.