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

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

Barbara Streisand
發布: 2024-10-20 22:15:02
原創
1072 人瀏覽過

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中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板