首頁  >  文章  >  後端開發  >  如何使用 np.newaxis 控制 NumPy 中的陣列維度?

如何使用 np.newaxis 控制 NumPy 中的陣列維度?

Barbara Streisand
Barbara Streisand原創
2024-10-26 01:56:02164瀏覽

How Can np.newaxis Be Used to Control Array Dimensions in NumPy?

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

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