如何解决错误:无法将1号大小的阵列重塑为形状(3,3,1)?

时间:2018-03-25 13:29:53

标签: python arrays numpy reshape

我创建了这个示例代码,其中img1和img2是我的图像矢量转换为灰度值。 val1,val2变量是图像的输出。我需要使用X来格式化输入功能以训练神经网络,但是,当我使用重塑连接时,它会抛出此错误。我该如何解决? 这是我的代码:

check = []
img1=[1,2,3,4,5,6,7,8,9]
val1=[0,1]
img2=[9,8,7,6,5,4,3,2,1]
val2=[1,0]
check.append([np.array(img1),np.array(val1)])
check.append([np.array(img2),np.array(val2)])
print(check)

X = np.array(i[0] for i in check).reshape(-1,3,3,1)
print(X)

1 个答案:

答案 0 :(得分:0)

在你的X = np.array(i[0] for i in check).reshape(-1,3,3,1)行中,我认为你想成为列表理解的东西缺乏封闭的[...]来实现它。没有这些括号,i [0] ...检查被解释为生成器理解(给出生成器而不是迭代器),因此只生成第一个元素(创建一个大小为1的数组 - 因此出错)。

X = np.array(list(i[0] for i in check)).reshape(-1,3,3,1)

OR

X = np.array([i[0] for i in check]).reshape(-1,3,3,1)

将解决问题。