Python:将并行数组重塑为训练集
我有两个使用meshgrid创建的并行阵列: 现在我想将其转换为NN的(Xn*Yn,2)形状的训练集:Python:将并行数组重塑为训练集,python,numpy,reshape,Python,Numpy,Reshape,我有两个使用meshgrid创建的并行阵列: 现在我想将其转换为NN的(Xn*Yn,2)形状的训练集: [[x_1, y_1], [x_2, y_2], ..., [x_m, y_m]] (where m = Xn * Yn) 怎么做?您可以尝试重塑和堆叠,使用重塑函数将X和Y转换为一列2D数组((Xn,1)代表X,(Yn,1)代表Y),然后水平堆叠: X, Y = np.meshgrid([1,2], [3,4,5]) np.hstack([X.reshape(-1, 1), Y.
[[x_1, y_1], [x_2, y_2], ..., [x_m, y_m]]
(where m = Xn * Yn)
怎么做?您可以尝试
重塑
和堆叠
,使用重塑
函数将X和Y转换为一列2D数组((Xn,1)代表X,(Yn,1)代表Y),然后水平堆叠:
X, Y = np.meshgrid([1,2], [3,4,5])
np.hstack([X.reshape(-1, 1), Y.reshape(-1, 1)])
#array([[1, 3],
# [2, 3],
# [1, 4],
# [2, 4],
# [1, 5],
# [2, 5]])
或者@Denis提到的另一个选项:
np.stack((X.ravel(), Y.ravel()), axis=-1)
至于速度,这两个选项具有可比性:
X, Y = np.meshgrid(np.arange(1000), np.arange(1000))
%timeit np.hstack([X.reshape(-1, 1), Y.reshape(-1, 1)])
#100 loops, best of 3: 4.77 ms per loop
%timeit np.stack((X.ravel(), Y.ravel()), axis=-1)
#100 loops, best of 3: 4.89 ms per loop
np.stack((X,Y),axis=-1)?@MaxChrétien I制作(Xn,Yn,2)形状的数组-不是我需要的。工作正常。XY_train=np.stack((X.ravel(),Y.ravel()),axis=-1)是等效的吗?
X, Y = np.meshgrid(np.arange(1000), np.arange(1000))
%timeit np.hstack([X.reshape(-1, 1), Y.reshape(-1, 1)])
#100 loops, best of 3: 4.77 ms per loop
%timeit np.stack((X.ravel(), Y.ravel()), axis=-1)
#100 loops, best of 3: 4.89 ms per loop