2017-01-07 108 views
0

我刚开始使用'NumPy',我试图了解阵列的resizereshape之间的区别。在Numpy中使用数组时,resize和reshape有什么区别?

+0

你有没有尝试过任何研究? – TigerhawkT3

+0

sum(ndarray.shape)''''和''ndarray.size''在''''ndarray.reshape'''后面是一样的。 ''''ndarray.resize'''后面的值会有所不同 – wwii

+0

'reshape'一直在使用; “调整大小”是很少需要的,并且经常让初学者感到困惑;忽略它。 – hpaulj

回答

7

重塑不会像提到的here那样更改数据。 调整大小改变数据,可以看到here

下面是一些例子:

>>> numpy.random.rand(2,3) 
array([[ 0.6832785 , 0.23452056, 0.25131171], 
     [ 0.81549186, 0.64789272, 0.48778127]]) 
>>> ar = numpy.random.rand(2,3) 
>>> ar.reshape(1,6) 
array([[ 0.43968751, 0.95057451, 0.54744355, 0.33887095, 0.95809916, 
     0.88722904]]) 
>>> ar 
array([[ 0.43968751, 0.95057451, 0.54744355], 
     [ 0.33887095, 0.95809916, 0.88722904]]) 

重塑后的阵列并没有改变,而只是输出一个临时数组重塑。

>>> ar.resize(1,6) 
>>> ar 
array([[ 0.43968751, 0.95057451, 0.54744355, 0.33887095, 0.95809916, 
     0.88722904]]) 

调整大小后,数组改变了它的形状。

+0

由于OP没有指定,我会指出'ar.resize(rows,cols)'改变了原始数组的位置,而'np.resize(ar,X)'只输出一个改变大小的数组, 'ar'保持不变。 此外,如果新尺寸大于原始'ar','ar.resize'在最后加上零,而'np.resize'重复原来的'ar'。 –

相关问题