Python 将形状x的数组重塑为形状(x,y)的数组
我正在学习如何在数据集上实现K-最近邻算法 我有一个形状数组(6003,),我想这样做:Python 将形状x的数组重塑为形状(x,y)的数组,python,numpy,Python,Numpy,我正在学习如何在数据集上实现K-最近邻算法 我有一个形状数组(6003,),我想这样做: data = data.reshape((data.shape[0], 3072)) 但是,我遇到了以下错误: 无法将大小为6003的阵列重塑为形状(60033072) 请问有什么帮助吗?谢谢 您正试图将形状重塑为不兼容的形状。现在,我这是什么意思?看看这个例子: a=np.array([[1,2,3], [4, 5, 6], ]) 此阵列的形状为: a.shape >(2,3) 数组a具有2x3
data = data.reshape((data.shape[0], 3072))
但是,我遇到了以下错误:
无法将大小为6003的阵列重塑为形状(60033072)
请问有什么帮助吗?谢谢 您正试图将形状重塑为不兼容的形状。现在,我这是什么意思?看看这个例子:
a=np.array([[1,2,3],
[4, 5, 6],
])
此阵列的形状为:
a.shape
>(2,3)
数组a
具有2x3=6个元素。让我们试着将其重塑为一个(2,6)
数组
a.重塑(2,6)
这引起
>> ValueError: cannot reshape array of size 6 into shape (2,6)
请注意,我们试图将包含2x3=6
元素的数组制作成包含2x6=12
元素的数组。但是NumPy无法将这些额外的元素添加到原始数组中,并给出所需的形状。因此它会引发ValueError
在您的例子中,您正在尝试将包含6003
元素的数组制作成包含6003 x 3072=18441216
元素的数组 您正试图将形状重塑为不兼容的形状。现在,我这是什么意思?看看这个例子:
a=np.array([[1,2,3],
[4, 5, 6],
])
此阵列的形状为:
a.shape
>(2,3)
数组a
具有2x3=6个元素。让我们试着将其重塑为一个(2,6)
数组
a.重塑(2,6)
这引起
>> ValueError: cannot reshape array of size 6 into shape (2,6)
请注意,我们试图将包含2x3=6
元素的数组制作成包含2x6=12
元素的数组。但是NumPy无法将这些额外的元素添加到原始数组中,并给出所需的形状。因此它会引发ValueError
在您的例子中,您正在尝试将包含6003
元素的数组制作成包含6003 x 3072=18441216
元素的数组 重塑numpy数组时,元素总数不应改变。
e、 g.a=[2,3,4,5,1,7]
如果您想将其重塑为2D
数组,则乘以的维数应等于原始数组a中的元素总数。
这意味着您可以将数组的尺寸重新调整为(1,6)(2,3)、(6,1)、(3,2)
顺便说一句,你问题的标题确实说明了错误
将形状数组(x,)
重塑为形状数组(x,y)
这是不可能的,因为您正试图向原始数据中添加更多元素。
形状(x,)
的数组只能被重塑为形状(x/y,y)
我希望这会有所帮助。当您重新塑造numpy数组时,元素总数不应该改变。
e、 g.a=[2,3,4,5,1,7]
如果您想将其重塑为2D
数组,则乘以的维数应等于原始数组a中的元素总数。
这意味着您可以将数组的尺寸重新调整为(1,6)(2,3)、(6,1)、(3,2)
顺便说一句,你问题的标题确实说明了错误
将形状数组(x,)
重塑为形状数组(x,y)
这是不可能的,因为您正试图向原始数据中添加更多元素。
形状(x,)
的数组只能被重塑为形状(x/y,y)
我希望这能有所帮助。重塑
只改变形状,而不是元素总数!它不是调整大小。你不能将(6003,)
改形为(60033072)
,改形为二维数组并不意味着尺寸会增加,它应该是6003
的倍数。也许你正在寻找类似np的东西。重复?数据必须具有[6003,48,64]这样的形状(假设它是灰度图像)。从这里开始,重塑的目的是降低尺寸以适合KNN这样的算法。你能检查这行之前的数据是否具有正确的形状吗?重塑
仅更改形状,而不是元素的总数!它不是调整大小
。你不能重塑(6003,)
到(60033072)
,重塑为2d数组并不意味着尺寸会增加,它应该是6003的倍数
也许您正在寻找类似np的东西。重复?数据必须具有[6003,48,64]这样的形状(如果是灰度图像).从这里开始,重塑的目的是减少尺寸,以适合KNN这样的算法。您能否检查此行之前的数据是否具有正确的形状?