问题:
我有两个一维数组
import numpy as np
x = np.arange(5, 9)
# array([5, 6, 7, 8])
y = np.arange(3)
# array([0, 1, 2])
和具有前两个笛卡尔积的形状的另一个2D数组(如它们的网格):
z = np.arange(x.size*y.size).reshape(x.size, y.size)
# array([[ 0, 1, 2],
# [ 3, 4, 5],
# [ 6, 7, 8],
# [ 9, 10, 11]])
我想使用纯numpy形成以下数组:
coords = []
for i in range(x.size):
for j in range(y.size):
c = [x[i], y[j], z[i,j]]
coords.append(c)
del i, j, c
coords = np.array(coords)
# array([[ 5, 0, 0],
# [ 5, 1, 1],
# [ 5, 2, 2],
# [ 6, 0, 3],
# [ 6, 1, 4],
# [ 6, 2, 5],
# [ 7, 0, 6],
# [ 7, 1, 7],
# [ 7, 2, 8],
# [ 8, 0, 9],
# [ 8, 1, 10],
# [ 8, 2, 11]])
背景:
一个人可能会认为
x1, y1 = np.meshgrid(x, y)
z = f(x1, y1)
del x1, x2
其中f
是一些功能。然后,我想构造数组
coords = [[x[1], y[1], z[1,1]], [x[2], y[1], z[2,1]], ...]
任何指导表示赞赏。谢谢!