一些sklearn编码器不接受许多列的2D数组。
lzt_int = [1, 2, 3, 4, 5, 6]
d1_int = np.array(lzt_int)
d2_int_multi = d2_int.reshape(int(d2_int.shape[0]/3), 3)
多列二维数组
>>> d2_int_multi
array([[1, 2, 3],
[4, 5, 6]])
想要高效地转换成一个由二维单列组成的三维数组,就像这样。
array([
[[1],
[4]],
[[2],
[5]],
[[3],
[6]],
])
转换尝试
>>> d2_int_multi.reshape(3, 2, 1, order='C')
array([[[1],
[2]],
[[3],
[4]],
[[5],
[6]]])
>>> d2_int_multi.reshape(3, 2, 1, order='F')
array([[[1],
[5]],
[[4],
[3]],
[[2],
[6]]])
>>> d2_int_multi.reshape(3, 2, 1, order='A')
array([[[1],
[2]],
[[3],
[4]],
[[5],
[6]]])
为了节省内存,我不希望访问每一列,在将其添加到三维数组之前,先将其设置为二维数组。