了解np.newaxis 及其應用程式
NumPy 的np.newaxis 是一個強大的工具,可以讓使用者無縫地增加陣列的維度。當使用 np.newaxis 一次時,一維數組會轉換為二維數組,二維數組會變成三維數組,依此類推。
場景 1:建立行或列向量
np.newaxis 被證明對於將一維數組明確轉換為行或列向量非常有用。透過沿著第一維插入軸,我們建立一個行向量,透過沿著第二維插入軸,我們得到一個列向量。
範例:
<code class="python">arr = np.arange(4) row_vec = arr[np.newaxis, :] col_vec = arr[:, np.newaxis]</code>
場景2:啟用廣播
np.newaxis 在促進NumPy 廣播進行加法等操作方面發揮著至關重要的作用。為了說明這一點,請考慮以下數組:
<code class="python">x1 = np.array([1, 2, 3, 4, 5]) x2 = np.array([5, 4, 3])</code>
嘗試直接在 NumPy 中添加這些數組將觸發 ValueError,因為它們的形狀不同。透過使用 np.newaxis 將新軸插入任一數組,我們啟用廣播並允許操作繼續進行。
範例:
<code class="python">x1_new = x1[:, np.newaxis] sum_array = x1_new + x2</code>
或者,我們可以在x2 中新增軸:
<code class="python">x2_new = x2[:, np.newaxis] sum_array = x1 + x2_new</code>
場景3:提升高階數組的維度
np.newaxis 可以多次使用,將陣列提升為更高維度,此功能對於操作張量特別有用。
範例:
<code class="python">arr = np.arange(5*5).reshape(5,5) arr_5D = arr[np.newaxis, ..., np.newaxis, np.newaxis]</code>
取代方案:np.expand_dims 和None
<_>npand_dims 和None <_>np.expanddims 提供了一個直覺的軸參數來擴展維度。此外,None 可以與 np.newaxis 互換使用。結論
np.newaxis 是管理 NumPy 陣列維度的多功能工具。其應用範圍從創建行或列向量到啟用廣播和提升高階數組的維度。以上是如何使用 np.newaxis 控制 NumPy 中的陣列維度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!