【发布时间】:2018-04-27 01:15:57
【问题描述】:
我想将 2D 数组重塑为 3D 数组。我写了代码,
for i in range(len(array)):
i = np.reshape(i,(2,2,2))
print(i)
i 变量具有偶数长度数组,如 [["100","150","2","4"],["140","120","3","5"]] 或
[[“1”,”5”,”6”,”2”],[“4”,”2”,”3”,”7”],[“7”,”5”,”6”,”6”],[“9”,”1”,”8”,”3”],[“3”,”4”,”5”,”6”],[“7”,”8”,”9”,”2”],,[“1”,”5”,”2”,”8”],[“6”,”7”,”2”,”1”],[“9”,”3”,”1”,”2”],[“6”,”8”,”3”,”3”]]
长度 >= 6。 当我运行此代码时,ValueError: cannot reshape array of size 148 into shape (2,2,2) 错误发生。 我的理想输出是
[[['100', '150'], ['2', '4']], [['140', '120'], ['3', '5']]] or [[[“1”,”5”],[”6”,”2”]],[[“4”,”2”],[”3”,”7”]],[[“7”,”5”],[”6”,”6”]],[[“9”,”1”],[”8”,”3”]],[[“3”,”4”],[”5”,”6”]],[[“7”,”8”],[”9”,”2”]],[[“1”,”5”],[”2”,”8”]],[[“6”,”7”],[”2”,”1”]],[[“9”,”3”],[[”1”,”2”]],[[“6”,”8”],[”3”,”3”]]]
我重写了代码y = [[x[:2], x[2:]] for x in i],但输出不是我理想的。我的代码有什么问题?
【问题讨论】:
-
你的二维数组的维度是多少,有多少个元素?排?和列?
-
@Spandy 数组有 2 组 4 个元素,例如 ["100","150","2","4"]。总元素是 2 组 4 个元素的数个。跨度>
-
@Spandy 所以长度的个数不固定。