np.vstack 的替代方法是 np.array 以这种方式使用(@bluenote10 在评论中也提到过):
x = np.arange([-3,4]) # array([-3, -2, -1, 0, 1, 2, 3])
N = 3 # number of time you want the array repeated
X0 = np.array([x] * N)
给予:
array([[-3, -2, -1, 0, 1, 2, 3],
[-3, -2, -1, 0, 1, 2, 3],
[-3, -2, -1, 0, 1, 2, 3]])
您也可以通过这种方式使用meshgrid(当然写的时间更长,而且有点牵强,但您还有另一种可能性,您可能会在此过程中学到新东西):
X1,_ = np.meshgrid(a,np.empty([N]))
>>> X1 显示:
array([[-3, -2, -1, 0, 1, 2, 3],
[-3, -2, -1, 0, 1, 2, 3],
[-3, -2, -1, 0, 1, 2, 3]])
检查所有这些是否等效:
-
meshgrid 和 np.array 方法
X0 == X1
结果:
array([[ True, True, True, True, True, True, True],
[ True, True, True, True, True, True, True],
[ True, True, True, True, True, True, True]])
-
np.array 和 np.vstack 方法
X0 == np.vstack([x] * 3)
结果:
array([[ True, True, True, True, True, True, True],
[ True, True, True, True, True, True, True],
[ True, True, True, True, True, True, True]])
-
np.array 和 np.tile 方法
X0 == np.tile(x,(N,1))
结果:
array([[ True, True, True, True, True, True, True],
[ True, True, True, True, True, True, True],
[ True, True, True, True, True, True, True]])