首頁 >後端開發 >Python教學 >-1 在 NumPy 的 .reshape() 陣列重塑方法中扮演什麼角色?

-1 在 NumPy 的 .reshape() 陣列重塑方法中扮演什麼角色?

Susan Sarandon
Susan Sarandon原創
2024-10-20 22:16:02481瀏覽

What Role Does -1 Play in NumPy's .reshape() Method for Array Reshaping?

NumPy 的 .reshape() 方法中 -1 是什麼意思?

NumPy 中,.reshape() 方法用於修改多維數組的形狀。有趣的是,值 -1 可以用於以特定方式重塑數組。

理解 -1 的概念

在 NumPy 中,-1 表示未知數用於重塑陣列的維度。當您提供 -1 作為形狀參數之一時,您指定應自動計算形狀以滿足某些條件。

與原始形狀的兼容性

至關重要重塑數組的條件是新形狀必須與原始形狀相容。這意味著重構後的數組中的元素數量必須與原始數組中的元素數量相符。

推論未知維度

NumPy 以以下方式計​​算未知維度考慮陣列的長度和其他指定的維度。它確保新形狀符合上述相容性條件。

範例

考慮下列 NumPy 陣列:

<code class="python">z = np.array([[1, 2, 3, 4],
         [5, 6, 7, 8],
         [9, 10, 11, 12]])</code>

其原始形狀為 (3, 4)。

用(-1) 重塑

用(-1) 作為唯一參數重塑z 給我們一個一維數組,其中包含所有元素:

<code class="python">z.reshape(-1)
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12])</code>

使用(-1, 1) 重塑

使用(-1, 1) 重塑建立一個包含未知行和一列的陣列:

<code class="python">z.reshape(-1, 1)
array([[ 1],
   [ 2],
   [ 3],
   [ 4],
   [ 5],
   [ 6],
   [ 7],
   [ 8],
   [ 9],
   [10],
   [11],
   [12]])</code>

使用(-1, 2) 重塑

使用(-1, 2) 會產生包含未知行和兩列的陣列:

<code class="python">z.reshape(-1, 2)
array([[ 1,  2],
   [ 3,  4],
   [ 5,  6],
   [ 7,  8],
   [ 9, 10],
   [11, 12]])</code>

使用(1, -1) 重塑

使用(1, -1) 重塑建立一個包含一行和未知列的陣列:

<code class="python">z.reshape(1,-1)
array([[ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12]])</code>

使用(-1, -1) 重塑

但是,如果將兩個維度都指定為-1,NumPy 將引發ValueError,因為它無法唯一確定新形狀。

以上是-1 在 NumPy 的 .reshape() 陣列重塑方法中扮演什麼角色?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn