Numpy: produto cartesiano dos pontos x e y em um único array de pontos 2D

Eu tenho dois matrizes numpy que definem os eixos xey de uma grade. Por exemplo:

x = numpy.array([1,2,3])
y = numpy.array([4,5])

Eu gostaria de gerar o produto cartesiano desses arrays para gerar:

array([[1,4],[2,4],[3,4],[1,5],[2,5],[3,5]])

De certa forma, isso não é terrivelmente ineficiente, já que preciso fazer isso muitas vezes em um loop. Eu estou supondo que convertê-los em uma lista do Python e usandoitertools.product e de volta a um array numpy não é a forma mais eficiente.

questionAnswers(11)

yourAnswerToTheQuestion