对于numpy的阵列我发现,重塑numpy的阵列到一个多维数组
x = numpy.array([]).reshape(0,4)
是精细和允许我追加(0,4)的阵列为x而不会在阵列丧失其结构(即它dosnt只是成为一个数字清单)。然而,当我尝试
x = numpy.array([]).reshape(2,3)
它会引发错误。为什么是这样?
对于numpy的阵列我发现,重塑numpy的阵列到一个多维数组
x = numpy.array([]).reshape(0,4)
是精细和允许我追加(0,4)的阵列为x而不会在阵列丧失其结构(即它dosnt只是成为一个数字清单)。然而,当我尝试
x = numpy.array([]).reshape(2,3)
它会引发错误。为什么是这样?
reshape
不是'追加'功能。它重塑你给它的数组到你想要的尺寸。
np.array([]).reshape(0,4)
因为您将零元素数组重构为一个0x4(= 0个元素)数组。
np.reshape([]).reshape(2,3)
不起作用,因为您正试图将零元素数组重新整形为2x3(= 6元素)数组。
要创建一个空阵列,请改为使用np.zeros((2,3))
。
如果你想知道,numpy数组不能附加到。您必须将其转换为list
,将所需内容和转换附加到numpy数组。最好只在以后不打算追加数据时才创建一个numpy数组。
这出认沽将解释什么意思,重塑一个数组...
np.array([2, 3, 4, 5, 6, 7]).reshape(2, 3)
输出 -
array([[2, 3, 4],
[5, 6, 7]])
所以重塑只是意味着整形数组。重塑(0,4)意味着直观地将当前数组转换为0行4列的格式。但0行意味着没有元素的意思,所以它作为你的数组是空的。类似地(2,3)意味着2行和3列,这是6个元素...
追加'(2,3)'阵列沿着什么轴?使用示例数组来展示您的想法? – Divakar
没关系,只是想知道为什么numpy.array([])。reshape(2,3)抛出错误 – Sruli
'numpy.array([])。reshape(2,3)'抛出错误,因为'numpy。数组([])'有零个元素,所以你不能将'(2,3)'重新定义为期望总共'6'个元素。 – Divakar