首頁  >  文章  >  後端開發  >  Numpy 的 Reshape() 中的 -1 參數是通配符還是固定值?

Numpy 的 Reshape() 中的 -1 參數是通配符還是固定值?

Barbara Streisand
Barbara Streisand原創
2024-10-20 22:15:02988瀏覽

Is the -1 Parameter in Numpy's Reshape() a Wildcard or a Fixed Value?

理解 -1 在 Numpy Reshape 中的作用

在 Numpy 中, reshape() 方法允許轉換數組形狀。使用 2D 陣列時,可以使用 reshape(-1) 將它們重塑為 1D 陣列。例如:

import numpy as np

a = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
a.reshape(-1)
# Output: array([[1, 2, 3, 4, 5, 6, 7, 8]])

通常,array[-1] 表示陣列中的最後一個元素。然而,在 reshape(-1) 的上下文中,這具有不同的意義。

Reshape 中的 -1 參數

reshape(- 1) 用作通配符維度。這表示新形狀的相應尺寸應自動決定。這是透過滿足新形狀必須與原始數組形狀對齊並保留其線性維度的標準來完成的。

Numpy 允許在形狀參數之一中使用 -1,從而能夠指定未知維度。例如,(-1, 3) 或 (2, -1) 是有效形狀,而 (-1, -1) 則不是。

重塑(-1) 的範例

考慮以下陣列:

z = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
z.shape  # (3, 4)

使用(-1) 重塑:

z.reshape(-1)
# Output: array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12])
# New shape: (12,)

使用(-1) 重塑:

z.reshape(-1, 1)
# Output: array([[ 1], [ 2], [ 3], [ 4], [ 5], [ 6], [ 7], [ 8], [ 9], [10],
#                [11], [12]])
# New shape: (12, 1)

使用(-1, 1) 重塑(單一特徵):

z.reshape(1, -1)
# Output: array([[ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12]])
# New shape: (1, 12)

使用(-1, 2) 重塑(單行):

z.reshape(2, -1)
# Output: array([[ 1,  2,  3,  4,  5,  6], [ 7,  8,  9, 10, 11, 12]])
# New shape: (2, 6)

使用(2, -1) 重塑:

z.reshape(3, -1)
# Output: array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
# New shape: (3, 4)

使用重塑(3, -1)(原始形狀):

請注意,將兩個尺寸指定為-1,即(-1, -1),將導致錯誤。 透過理解 reshape() 中 -1 的意義,開發人員可以有效地轉換數組形狀,以滿足他們在 Numpy 中的特定資料處理需求。

以上是Numpy 的 Reshape() 中的 -1 參數是通配符還是固定值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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