」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使用 NumPy 的「np.newaxis」在陣列操作中啟用廣播?

如何使用 NumPy 的「np.newaxis」在陣列操作中啟用廣播?

發佈於2024-11-08
瀏覽:336

How can NumPy\'s \'np.newaxis\' be used to enable broadcasting in array operations?

NumPy 的'np.newaxis' 是什麼以及如何使用它

理解'np.newaxis'

NumPy 的“np.newaxis”,也稱為“None”,是一個偽索引,用於臨時向數組添加軸。使用一次時,它將數組的維度增加一。例如,1D 數組變成 2D 數組,2D 數組變成 3D 數組,以此類推。

使用'np.newaxis' 的場景

場景1:從一維陣列建立行/列向量

'np.newaxis' 可用於將一維數組明確轉換為行向量(透過沿第一維插入軸)或列向量(透過沿第二維插入軸)。

場景 2:啟用 NumPy 廣播

'np.newaxis' 在執行涉及以下操作時非常有用NumPy 廣播。例如,考慮新增兩個形狀為「(5,)」和「(3,)」的陣列。 NumPy 會因形狀不相容而引發錯誤。透過使用'np.newaxis'增加一個陣列的維度,可以啟用廣播來執行該操作。

場景3:將陣列提升到更高的維度

'np.newaxis' 可以多次使用以將陣列提升到更高的維度,這對於高階數組(張量)可能是必需的。

用法範例

To使用'np.newaxis',將其插入到切片表達式中。例如:

# Create a row vector from a 1D array
x = np.arange(4)
x_row_vector = x[np.newaxis, :]

啟用廣播:

# Add a 1D array to a 2D array
x1 = np.array([1, 2, 3, 4, 5])
x2 = np.array([5, 4, 3])
x1_new = x1[:, np.newaxis]    # Insert axis for broadcasting
result = x1_new   x2

替代方案: 'np.expand_dims'

'np.expand_dims' 是'np.newaxis' 的替代方案,提供直覺的「軸” kwarg 指定新軸的插入點。

附加說明

  • 'np.newaxis' 暫時添加一個軸,與 'np.reshape' 不同它將數組重塑為新的佈局。
  • 'np.newaxis' 和 'None' 是等效的物件。
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3