Допустим, у меня есть 2 numpy массива
import numpy as np
x = np.array([1,2,3])
y = np.array([1,2,3,4])
При этом я хочу создать двумерный массив, как показано ниже.
Есть ли какой-либо метод для непосредственного достижения этого?






Ваша проблема заключается в написании декартова произведения. В numpy вы можете написать это, используя repeat и tile:
out = np.c_[np.repeat(x, len(y)), np.tile(y, len(x))]
Встроенный модуль Python itertools имеет метод, предназначенный для этого: product:
from itertools import product
out = np.array(list(product(x,y)))
Выход:
array([[1, 1],
[1, 2],
[1, 3],
[1, 4],
[2, 1],
[2, 2],
[2, 3],
[2, 4],
[3, 1],
[3, 2],
[3, 3],
[3, 4]])