gpt4 book ai didi

Numpy 将 "2D many columns" reshape 为 "3D of 2D single columns"

转载 作者:行者123 更新时间:2023-12-04 08:16:53 26 4
gpt4 key购买 nike

一些 sklearn 编码器不接受多列二维数组。

制作示例数据

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]])
想要高效地变成一个 2D 单列的 3D 数组,看起来像这样。
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]]])
为了内存 - 在将其添加到 3D 数组之前,我不想访问每一列,将其设为 2D 数组。

最佳答案

您想添加一个额外的轴,然后转置结果。您可以使用此行执行这些操作:

d2_int_multi[None].T
由于这不会移动任何数据,而只会创建原始数组的新 View ,因此非常高效。

关于Numpy 将 "2D many columns" reshape 为 "3D of 2D single columns",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65668636/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com