Numpy:x和y數組點的笛卡兒乘積成二維點的單個數組我有兩個numpy數組,它們定義了網格的x和y軸。例如:x = numpy.array([1,2,3])y = numpy.array([4,5])我想要生成這些數組的笛卡兒積來生成:array([[1,4],[2,4],[3,4],[1,5],[2,5],[3,5]])在某種程度上,這并不是非常低效率,因為我需要在一個循環中多次這樣做。我假設將它們轉換為Python列表并使用itertools.product返回到numpy數組并不是最有效的形式。
3 回答

慕森王
TA貢獻1777條經驗 獲得超3個贊
>>> numpy.transpose([numpy.tile(x, len(y)), numpy.repeat(y, len(x))])array([[1, 4], [2, 4], [3, 4], [1, 5], [2, 5], [3, 5]])

狐的傳說
TA貢獻1804條經驗 獲得超3個贊
x = numpy.array([1,2,3])y = numpy.array([4,5])[[x0, y0] for x0 in x for y0 in y]
[[1, 4], [1, 5], [2, 4], [2, 5], [3, 4], [3, 5]]
添加回答
舉報
0/150
提交
取消