Если я правильно понимаю ваше требование, вам понадобится следующее решение:
In [55]: arr = np.array([1, 2, 3, 4, 5, 6])
# our new desired shape
In [56]: new_shape = (6, 3)
# broadcast to `new_shape` and make it writable
# since `broadcast_to` returns a non-writable and referenced array
In [57]: arr_new = np.array(np.broadcast_to(arr[:, None], new_shape))
# copy the constant value
In [58]: arr_new[:, 1:] = const_val
In [59]: arr_new
Out[59]:
array([[1, 3, 3],
[2, 3, 3],
[3, 3, 3],
[4, 3, 3],
[5, 3, 3],
[6, 3, 3]])
Если, с другой стороны, вы просто хотите скопировать этот же массив в новую форму, используйте:
In [63]: const_val = 3
In [64]: new_shape = (arr.shape[0], const_val)
In [65]: arr_new = np.array(np.broadcast_to(arr[:, None], new_shape))
In [66]: arr_new
Out[66]:
array([[1, 1, 1],
[2, 2, 2],
[3, 3, 3],
[4, 4, 4],
[5, 5, 5],
[6, 6, 6]])
In [67]: arr_new.shape
Out[67]: (6, 3)