當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python numpy chararray.resize用法及代碼示例


本文簡要介紹 python 語言中 numpy.chararray.resize 的用法。

用法:

chararray.resize(new_shape, refcheck=True)

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

參數

new_shape 整數元組,或n整數

調整大小數組的形狀。

refcheck 布爾型,可選

如果為 False,則不會檢查引用計數。默認為真。

返回

None

拋出

ValueError

如果 a 不擁有自己的數據或對其的引用或視圖存在,則必須更改數據內存。僅PyPy:如果必須更改數據內存,則始終會引發,因為沒有可靠的方法來確定對其的引用或視圖是否存在。

SystemError

如果指定了 order 關鍵字參數。這種行為是 NumPy 中的一個錯誤。

注意

如果需要,這會為數據區重新分配空間。

隻能調整連續數組(內存中連續的數據元素)的大小。

引用計數檢查的目的是確保不要將此數組用作另一個 Python 對象的緩衝區,然後重新分配內存。但是,引用計數可以通過其他方式增加,因此如果您確定沒有與另一個 Python 對象共享此數組的內存,那麽您可以安全地將 refcheck 設置為 False。

例子

縮小數組:數組被展平(按照數據存儲在內存中的順序)、調整大小和重塑:

>>> 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]])

相關用法


注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.chararray.resize。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。