Numpy数组重塑结果不符预期:4x1向量转2x1x2输出异常
Numpy数组重塑:得到预期的嵌套结构
你现在的问题是reshape的维度参数选错了,导致输出结构和预期不符。
直接解决代码
import numpy as np v = np.array([[1],[2],[3],[4]]) w = v.reshape(2, 2, 1) print(w)
输出结果完全符合你的预期:
[[[1] [2]] [[3] [4]]]
为什么之前的代码不对?
你用了reshape(v, (2,1,2)),这个维度对应的是2个组,每组1个包含2个元素的数组,所以输出是[[[1 2]], [[3 4]]]。而你想要的是2个组,每组2个1元素的数组,对应的维度是(2,2,1)——总元素数(221=4)和原数组一致,所以直接用这个维度参数就能得到正确结构。
如果担心原数组的维度影响,也可以先展平再重塑,结果一样:
w = v.flatten().reshape(2,2,1)
内容的提问来源于stack exchange,提问作者ericj
相关产品推荐
相关产品推荐

