Я пытаюсь сгенерировать массив координат из 1d-списков позиций X Y Z. Программное обеспечение, которое я использую, выполняет итерации по каждому списку, которые располагаются в определенном порядке приоритета.
Другими словами, если у меня есть x = [x0, x1]
, y = [y0, y1]
и z = [z0, z1]
и если приоритет равен z> y> x, соответствующий массив будет:
x0 y0 z0
x0 y0 z1
x0 y1 z0
x0 y1 z1
x1 y0 z0
x1 y0 z1
x1 y1 z0
x1 y1 z1
Я пытался использовать списочные выражения, однако ввод - 1d ndarrays, а не списков, что требует от меня преобразования данных в списки, а затем обратно обратно в ndarray (в некоторых случаях я также пытаюсь использовать гибкие списки) реализовать). Есть ли в numpy функции, которые могут помочь сгенерировать такой массив?
x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
out = [[i, j, k] for i in x for j in y for k in z]
out = np.asarray(out)
выход
[[1, 4, 7],
[1, 4, 8],
[1, 4, 9],
[1, 5, 7],
[1, 5, 8],
[1, 5, 9],
[1, 6, 7],
[1, 6, 8],
[1, 6, 9],
[2, 4, 7],
[2, 4, 8],
[2, 4, 9],
[2, 5, 7],
[2, 5, 8],
[2, 5, 9],
[2, 6, 7],
[2, 6, 8],
[2, 6, 9],
[3, 4, 7],
[3, 4, 8],
[3, 4, 9],
[3, 5, 7],
[3, 5, 8],
[3, 5, 9],
[3, 6, 7],
[3, 6, 8],
[3, 6, 9]]