numpy.matrix.resize#

方法

matrix.resize(new_shape, refcheck=True)#

就地變更陣列的形狀和大小。

參數:
new_shape整數元組,或 n 個整數

調整大小後的陣列形狀。

refcheckbool,選用

如果為 False,則不會檢查參考計數。預設值為 True。

傳回:
None
引發:
ValueError

如果 a 不擁有自己的資料,或存在對其的參考或視圖,且必須變更資料記憶體。僅限 PyPy:如果必須變更資料記憶體,則將始終引發,因為沒有可靠的方法來判斷是否存在對其的參考或視圖。

SystemError

如果指定了 order 關鍵字引數。此行為是 NumPy 中的錯誤。

另請參閱

resize

傳回具有指定形狀的新陣列。

註解

如有必要,這會重新配置資料區域的空間。

只有連續陣列(資料元素在記憶體中是連續的)才能調整大小。

參考計數檢查的目的是確保您不會將此陣列用作另一個 Python 物件的緩衝區,然後重新配置記憶體。但是,參考計數可能會以其他方式增加,因此,如果您確定您沒有與另一個 Python 物件共享此陣列的記憶體,則可以安全地將 refcheck 設定為 False。

範例

縮小陣列:陣列會被展平(依照資料儲存在記憶體中的順序)、調整大小和重新塑形

>>> import numpy as np
>>> a = np.array([[0, 1], [2, 3]], order='C')
>>> a.resize((2, 1))
>>> a
array([[0],
       [1]])
>>> a = np.array([[0, 1], [2, 3]], order='F')
>>> a.resize((2, 1))
>>> a
array([[0],
       [2]])

放大陣列:如上,但遺失的條目會以零填補

>>> b = np.array([[0, 1], [2, 3]])
>>> b.resize(2, 3) # new_shape parameter doesn't have to be a tuple
>>> b
array([[0, 1, 2],
       [3, 0, 0]])

參考陣列會阻止調整大小…

>>> c = a
>>> a.resize((1, 1))
Traceback (most recent call last):
...
ValueError: cannot resize an array that references or is referenced ...

除非 refcheck 為 False

>>> a.resize((1, 1), refcheck=False)
>>> a
array([[0]])
>>> c
array([[0]])