Letâ€™s say I have two NumPy arrays, a and b:

a = np.array([

[1, 2, 3],

[2, 3, 4]

])

b = np.array([8,9])

And I would like to append the same array b to every row (ie. adding multiple columns) to get an array, c:

b = np.array([

[1, 2, 3, 8, 9],

[2, 3, 4, 8, 9]

])

How can I do this easily and efficiently in NumPy?

I am especially concerned about its behaviour with big datasets (where a is much bigger than b), is there any way around creating many copies (ie. a.shape[0]) of b?

Related to this question, but with multiple values.