2017-01-07 52 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'。 –

相關問題